分享一段自己写的pap反向算法,可以还原pap加密过的密文
本帖最后由 luokaichuang 于 2019-3-5 07:24 编辑/* 还原pap加密的密码为明文
* secret: 对接密钥
* secret_len: 密钥长度
* auth: 请求认证字
* pap_pwd: pap算法加密后的密文
* pwd_len: pap密文长度
* pwd_text:明文密码
*/
void pap_dec(uint8_t* secret,uint8_t secret_len,uint8_t* auth,uint8_t* pap_pwd,uint8_t pwd_len,uint8_t* pwd_text){
int loop=pwd_len/16;
int i,j,offset;
uint8_t group;
uint8_t md5val;
uint8_t md5source;
memcpy(md5source,secret,secret_len);
for(i=1;i<=loop;i++){
offset=(loop-i)*16;
memcpy(group,pap_pwd+offset,16);
if(loop==i){
memcpy(md5source+secret_len,auth,16);
md5(md5val,md5source,secret_len+16);
for(j=0;j<16;++j){
pwd_text=group^md5val;
}
}else{
memcpy(md5source+secret_len,pap_pwd+offset-16,16);
md5(md5val,md5source,secret_len+16);
for(j=0;j<16;++j){
pwd_text=group^md5val;
}
}
}
}
看不懂帮顶 太厉害了{:2_31:} 看不懂帮顶
看不懂帮顶 你会Java么
页:
[1]