dtm41506 2014-02-03 05:55
浏览 352

Javascript DES加密/ PHP解密

I have a PHP endpoint that is used by several websites. While POSTing data to the endpoint the sites use encrypted headers to identify various information. The sites use the standard PHP mcrypt_ecb function, and the endpoint decrypts the variables like this:

$var = trim(mcrypt_ecb(MCRYPT_DES, $key, base64_decode($input), MCRYPT_DECRYPT)));

I don't really have much chance of altering the PHP endpoint, although I could conceivably make another endpoint if mcrypt_ecb doesn't play nicely.

I now have a PhoneGap app, which also needs to send the encrypted headers. Phonegap can only really use javascript to POST to a remote server. I've looked at the Google CryptoJS to try to acheive this, along side a base64 library. Note that the key is the same as the $key var above.

var encrypted = CryptoJS.DES.encrypt(user.email, key).toString();
var base64 = base64.encode(encrypted);

The problem is that the encrypted string (and I have tried without the base64 encode/decode) when passed through mcrypt_ecb is garbage. Apparently there are different methods of triple DES encryption?

How would I create a mcrypt_ecb compatible encrypted string in JavaScript?

  • 写回答

3条回答 默认 最新

  • douzhi2012 2015-10-27 15:27
    关注

    I used the same library. Had to ensure that the des() result was trimmed as there was some odd characters after and it wasn't matching.

    $password = trim(des("12345678", hexToString("1212121121"), 0, 1, null));
    

    Hope it helps someone.

    评论

报告相同问题?

悬赏问题

  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 一直显示正在等待HID—ISP