看了一下關於加密登陸的相關內容,確實沒有認證不是https方式的登陸很不安全,POST的值能全部看到。
找了一些資料關於js加密php解密的資料,但是還是不是非常清楚,
大概思路是通過前台向後台發出請求獲得一個密鑰,然後前台進行加密,傳到後端解密。
(沒有認證只是簡單的js加密)
問題
1. 在前台向後台請求密鑰的時候是不是就有安全隱患,不管是存在cookie還是session
2. 確實很多概念還不清楚就來提問了,但是希望大神能幫忙梳理一下。
http://skysbird.duichenmei.com/?p=306 看到了一下這個代碼,思路清晰了一些。
又在網上搜尋了到這兩段代碼。
------javascript
php------
$text = "Message";$key = md5($text); //key的長度必須16,32位,這裡直接MD5一個長度為32位的key$iv='1234567812345678';$crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $text, MCRYPT_MODE_CBC, $iv);$decode = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $crypttext, MCRYPT_MODE_CBC, $iv);echo base64_encode($crypttext);echo "
";echo $decode;echo "
";
如果是對應的,js的encrypted 傳到php 值是和$crypttext 相等,但是mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $crypttext, MCRYPT_MODE_CBC, $iv); 中的$key 是md5的$text。搞不清白了。
求簡單細緻解說。
回複內容:
看了一下關於加密登陸的相關內容,確實沒有認證不是https方式的登陸很不安全,POST的值能全部看到。
找了一些資料關於js加密php解密的資料,但是還是不是非常清楚,
大概思路是通過前台向後台發出請求獲得一個密鑰,然後前台進行加密,傳到後端解密。
(沒有認證只是簡單的js加密)
問題
1. 在前台向後台請求密鑰的時候是不是就有安全隱患,不管是存在cookie還是session
2. 確實很多概念還不清楚就來提問了,但是希望大神能幫忙梳理一下。
http://skysbird.duichenmei.com/?p=306 看到了一下這個代碼,思路清晰了一些。
又在網上搜尋了到這兩段代碼。
------javascript
php------
$text = "Message";$key = md5($text); //key的長度必須16,32位,這裡直接MD5一個長度為32位的key$iv='1234567812345678';$crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $text, MCRYPT_MODE_CBC, $iv);$decode = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $crypttext, MCRYPT_MODE_CBC, $iv);echo base64_encode($crypttext);echo "
";echo $decode;echo "
";
如果是對應的,js的encrypted 傳到php 值是和$crypttext 相等,但是mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $crypttext, MCRYPT_MODE_CBC, $iv); 中的$key 是md5的$text。搞不清白了。
求簡單細緻解說。
- 對。密鑰通過明文傳播就會有加密隱患。另外有更可怕的例子,已證實有中國電訊廠商直接把用於加密的JS函數給改了。
- 在JS中和PHP中,這裡都使用了同一個密鑰建置規則:自訂一個
String,然後用其MD5值做AES密鑰。這樣一來會避免密鑰長度補齊之類的問題。