|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
×
本帖最后由 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[16];
- uint8_t md5val[16];
- uint8_t md5source[secret_len+16];
- 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[j]=group[j]^md5val[j];
- }
- }else{
- memcpy(md5source+secret_len,pap_pwd+offset-16,16);
- md5(md5val,md5source,secret_len+16);
- for(j=0;j<16;++j){
- pwd_text[offset+j]=group[j]^md5val[j];
- }
- }
- }
- }
复制代码
|
|