Guest User

2ch AppKey & HMKey

a guest
Feb 25th, 2015
1,330
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.52 KB | None | 0 0
  1. ▪️ API概要
  2. APIは現状認証とdat取得の2ステップから成る
  3. 一度認証が通れば、session keyが払い出され、それを使ってdatを取得できる
  4.  
  5. ▪️ 認証
  6. 必要なのはAppKey, HMKey
  7. 1. HBを計算する
  8. * HMKeyは共通で、
  9. DgQ3aNpoluV1cl3GFJAqitBg5xKiXZ
  10. * アルゴリズムはHMAC, Hash関数はSHA256
  11. * 10桁の文字列(以後CTと呼ぶ)を生成(多分なんでもOK)
  12. * AppKeyとCTを結合した値がHBの元になるmessage
  13.  
  14. 例)python
  15.  
  16. import hmac
  17. import hashlib
  18.  
  19. AppKey = 'xxfvFQcOzpTBvwuwPMwwzLZxiCSaGb'
  20. HMKey = 'DgQ3aNpoluV1cl3GFJAqitBg5xKiXZ'
  21. CT = '1234567890'
  22. message = AppKey + CT
  23. HB = hmac.new(HMKey, message, hashlib.sha256).hexdigest()
  24.  
  25. 2. 認証用URLに接続し、セッションID (以降sidと呼ぶ)を取得する
  26. * URLは https://api.2ch.net/v1/auth/
  27. * メソッドぱPOST
  28. * ヘッダは以下推奨
  29. User-Agent:
  30. X-2ch-UA: JaneStyle/3.80
  31. Content-Type: application/x-www-form-urlencoded
  32. * 渡すパラメータはID,PW,KY,CT,HB
  33. ID,PWは浪人ログインする場合のものと思われる。空でOK
  34. KYはAppKey、CTは上で生成した任意の10桁の文字列、HBは1のステップで計算した値
  35. * セッションIDの本体は、戻ってきた値の「Monazilla/1.00:」以降の部分
  36.  
  37. 例)python
  38.  
  39. import urllib
  40. import urllib2
  41. url = 'https://api.2ch.net/v1/auth/'
  42. values = {'ID' : '', 'PW' : '', 'KY' : AppKey, 'CT' : CT, 'HB' : HB }
  43. headers = { 'User-Agent' : '', 'X-2ch-UA': 'JaneStyle/3.80'}
  44. data = urllib.urlencode(values)
  45. req = urllib2.Request(url, data, headers)
  46. response = urllib2.urlopen(req)
  47. sid = response.read()
  48. sid = sid.split(':')[1]
  49.  
  50. ▪️ DAT取得
  51. 1. hobo値の計算
  52. * HBと同じ鍵を使い、同じくHMAC SHA256で計算する
  53. * 必要なのはSID, AppKey, 及び取得先のサーバー名、板名、スレID
  54. * "/v1/[鯖名]/[板名]/[スレID][SID][AppKey]"がhoboの元になるmessage
  55.  
  56. 例) python, anago.2ch.net/software/1424327586 を取得する
  57. import hmac
  58. import hashlib
  59.  
  60. AppKey = 'xxfvFQcOzpTBvwuwPMwwzLZxiCSaGb'
  61. HMKey = 'DgQ3aNpoluV1cl3GFJAqitBg5xKiXZ'
  62. sid = '4163736E9042H9074B2156E8022B8111Q4926V7274D5439D5725C863N0515G1131S1304y7065Q0829p6706Q7501C0869t1111o0789m8973o4609Q8140z1737B6239Y5582V2994653e1995Y7835D1409Y7347m8532S8306X13'
  63. message = "/v1/anago/software/1424327586" + sid + AppKey
  64. hobo = hmac.new(HMKey, message, hashlib.sha256).hexdigest()
  65.  
  66. 2. datの取得
  67. * URLはhttps://api.2ch.net/v1/[鯖名]/[板名]/[スレID]
  68. * メソッドはPOST
  69. * ヘッダは以下推奨
  70. User-Agent: Mozilla/3.0 (compatible; JaneStyle/3.80..)
  71. Connection: close
  72. Content-Type: application/x-www-form-urlencoded
  73. Accept-Encoding: gzip
  74. * 渡すパラメータはsid, hobo, appkey
  75. sidはSID, hoboは上記1で計算した値、appkeyはAppKey
  76.  
  77. 例)python anago.2ch.net/software/1424327586 を取得する
  78.  
  79. import urllib
  80. import urllib2
  81. AppKey = 'xxfvFQcOzpTBvwuwPMwwzLZxiCSaGb'
  82. sid = '4163736E9042H9074B2156E8022B8111Q4926V7274D5439D5725C863N0515G1131S1304y7065Q0829p6706Q7501C0869t1111o0789m8973o4609Q8140z1737B6239Y5582V2994653e1995Y7835D1409Y7347m8532S8306X13'
  83. hobo = 'acb4d0d419b8960674845b3055d030c9b7923f54fbeea4eba38aa539b2560329'
  84. url = 'https://api.2ch.net/v1/anago/software/1424327586'
  85. values = { 'sid' : sid, 'hobo' : hobo, 'appkey': AppKey }
  86. headers = { 'User-Agent' : 'Mozilla/3.0 (compatible; JaneStyle/3.80..)'}
  87. data = urllib.urlencode(values)
  88. req = urllib2.Request(url, data, headers)
  89. response = urllib2.urlopen(req)
  90. dat = response.read()
Add Comment
Please, Sign In to add comment