摘要:項目背景因為自己開發的接口希望在傳遞的工程中可以保證參數是密文的形式,主要是前端使用加密,后端使用解密在網絡上搜索了很多的方法,但是大部分的都是使用和進行端的加解密,但是眾所周知的問題,這兩個方法在以后將會被廢棄,故而采用。
項目背景
因為自己開發的接口希望在傳遞的工程中可以保證參數是密文的形式,主要是前端使用js加密,后端使用php解密
在網絡上搜索了很多的方法,但是大部分的都是使用mcrypt_decrypt和mcrypt_encrypt進行php端的加解密,但是眾所周知的問題,這兩個方法在php7.1以后將會被廢棄,故而采用。
實現方式說明php使用mcrypt_decrypt和mcrypt_encrypt的組合方式,以及openssl_decrypt和openssl_encrypt的組合方式
js端使用Crypto-js
為了說明兩種方式的區別,在使用mcrypt_decrypt和mcrypt_encrypt方式的時候,使用crypto-helper-zeropadding.js來命名自定義的js加密幫助類,使用test_crypto_zeropadding.html來命令對應的測試html文件;在使用openssl_decrypt和openssl_encrypt的組合方式的時候,使用crypto-helper-pkcs7.js來命名自定義的js加密幫助類,使用test_crypto_pcks7.html來命名測試頁面 ,詳細的區別可以參見 帖子
https://segmentfault.com/q/10...
github地址
方法一 :使用mcrypt_decrypt和mcrypt_encrypt php加密解密類