IT之家各种加密及API说明

/ 3评 / 0

首先是登录接口(获取userhash)

登录接口地址:https://my.ruanmei.com/Default.aspx/LoginUser
post一个json过去:
{
"mail":"",
"psw":"",
"rememberme":"true"
}

登录成功后,会在cookie写入一个user=hash=xxxxxx。
其中这个xxxxx就是后面要用到的hash

这个hash是通过以下方式加密:
加密模式:DES-ECB
填充方式:zeropadding
密钥:(#i@x*l%
IV偏移量:ECB无IV
输出方式:hex

可以解出由用户邮箱或手机号+(U+000C字符)+64位字符串
这个64位字符串,暂时不清楚是由什么方式加密,但是可以肯定的是其中的变量只有密码,不包含账户

各类签到接口的时间戳加密参数:

比如公众号签到:
https://my.ruanmei.com/api/UserSign/WeChatSign?userHash={userhash}&coinHistoryType=157&timestamp=1599097691147&{key}={value}

这里有个参数的key和value都是加密的:

首先是密钥串hd7%b4f8p9)*fd4h5l6|)123/*-+!#$@%^*()_+?>?njidfds[]rfbcvnb3rz/ird|opqqyh487874515/%90hggigadfihklhkopjj`b3hsdfdsf84215456fi15451%q(#@Fzd795hn^Ccl$vK^L%#w$^yr%ETvX#0TaPSRm5)OeG)^fQnn6^%^UTtJI#3EZ@p6^Rf$^!O$(jnkOiBjn3#inhOQQ!aTX8R)9O%#o3zCVxo3tLyVorwYwA^$%^b9Yy$opSEAOOlFBsS^5d^HoF%tJ$dx%3)^q^c^$al%b4I)QHq^#^AlcK^KZFYf81#bL$n@$%j^H(%m^

$_day=date("j");也就是js的getDate(),是当月的第几天,前面不补0

然后有个之家经过某种算法出来的时间戳数字:
之家时间戳:round($timestamp/50000)*$_day*3

参数Key的加密方式
deskey=密钥串[int(之家时间戳%100000000/10000000)*$_day]+密钥串[int(之家时间戳%10000000/1000000)*$_day]+密钥串[int(之家时间戳%1000000/100000)*$_day]+密钥串[int(之家时间戳%100000/10000)*$_day]+密钥串[int(之家时间戳%10000/1000)*$_day]+密钥串[int(之家时间戳%1000/100)*$_day]+密钥串[int(之家时间戳%100/10)*$_day]+密钥串[int(之家时间戳%10)*$_day]

destext=密钥串[int(之家时间戳%10000/1000)*$_day]+密钥串[int(之家时间戳%1000/100)*$_day]+密钥串[int(之家时间戳%100/10)*$_day];

通过deskey和destext来进行DES加密

参数Values的加密方式:
deskey:和上面的一样
destext:时间格式,例如"2020-09-03 07:27:01"

通过deskey和destext来进行DES加密

这里的DES加密:
加密模式:DES-ECB
填充方式:zeropadding
密钥:deskey
IV偏移量:ECB无IV
输出方式:hex
加密字符串:destext

各类签到接口的endt参数(已废弃)

比如IT之家签到:
https://my.ruanmei.com/api/usersign/getsigninfo?userhash={userhash}&appver=630&endt={endt}

这里的endt参数,是通过一下方式加密:
加密模式:DES-ECB
填充方式:zeropadding
密钥:HCa%Y|7#
IV偏移量:ECB无IV
输出方式:hex
加密字符串由一个时间格式加密:2020-08-24 06:55:54

云日历登录的aesuserhash

API:https://my.ruanmei.com/api/user/getaccesstoken?aesuserhash=urlencode({aesuserhash})&withuserinfo=true&extra=10|mytime_windows&appver=1.29&platform=windows

这个aesuserhash是由以下方式加密生成:
加密模式:AES-CBC
填充方式:pkcs5
密钥:&eVcDCpYNwe2T05T
IV偏移量:f4f@&$CKH$!X8mpX
输出方式:base64
加密字符串是由账户+(U+000C字符)+MD5(密码)组成
注意加密后需要urlencode传入

文中提到的(U+000C字符),编辑器里是看不到的,可以尝试直接在这里复制到代码内:( )
就是括号中间的上箭头

  1. 王虎说道:

    好评

  2. Jean说道:

    大佬之前的签到页面怎么没了啊

  3. njviedrgwifueoad说道:

    之前那个添加自动签到的网址是什么呀

发表评论

邮箱地址不会被公开。 必填项已用*标注