前端JS des3 加密后 后臺java 無法解密的問題 報錯:Input length not multiple of 8 bytes 填充模式 向量 加解密模式都檢查了 而且更改后做了測試,都還是一樣的報錯。
最終懷疑是密鑰的問題,然后開始測試
var str = "EMP_SID=null#channel=1201#responseFormat=JSON#mobileNo=13550777557#flag=0#liana_notCheckUrl=false#currentBusinessCode=02000015#";document.write("原始字符串:</br>"+str);var key = "0lianaemp9abcd0lianaemp9";var des3en = DES3.encrypt(key,str);document.write("</br>des3加密:</br>"+des3en);頁面輸出: des3加密: byTSs+5msFKCJSLRHZ2s56BdeHWK6AEoaiKgtUMPJmq5gmRpocUMQWdI6aljcMWyI0tT4M2vyFft2fZwzl4BRx9WLqWNbII/KTGzTIJCXO8VMhVzctb3g62mjK6SJaKf8fHHfhGxD3aFZ450ZmvZvxDNrxhwjOj12JzMGJ1Wsg==
是一兩個 ==結尾的 而后臺java解密的時候就會少8個字節導致報錯:Input length not multiple of 8 bytes
而同樣的代碼:
var str = "EMP_SID=null#channel=1201#responseFormat=JSON#mobileNo=13550777557#flag=0#liana_notCheckUrl=false#currentBusinessCode=02000015#";document.write("原始字符串:</br>"+str);var key = "0lianaemp9abcd0lianaemp1";var des3en = DES3.encrypt(key,str);document.write("</br>des3加密:</br>"+des3en);更改了一下密鑰 加密后: des3加密: 3CLNgbExAPfsbDJM6Vv/ymEVwhEQ9HUCVxmM8HXxGIvXKi5vX7wUgs3SALBUP2CfeXqB7APTdiCB3GFsbZIkIcxVACNWOlk6qXYjeBTc531eBwjiPYCPRkTPvwwBh3PMkElKJA7eSzFW7xGuPkWe8ls4xnlQCJxixcKwg3Q8TdA= 這里的密文最后只有一個“=” 后臺就可以解密了
但是 一直沒有找到為什么
主要代碼引用的
https://www.oschina.net/code/snippet_123236_45994 文章中的JS和html
新聞熱點
疑難解答