对于AES和RSA算法的结合使用以及MD5加盐注册登录时的密码加密
RSA和AES結(jié)合使用
接上篇的RSA和AES算法加密之后,AES對稱算法對數(shù)據(jù)量大的加密比較快,而RSA公私鑰加密的話會(huì)影響加密效率,但是AES的加密與解密的密鑰是一致的,導(dǎo)致密鑰不能外泄,密鑰在網(wǎng)絡(luò)傳輸過程中,很有可能會(huì)導(dǎo)致密鑰外泄。
由此可以將RSA和AES兩種結(jié)合起來,讓RSA來加密AES密鑰,AES加密內(nèi)容,這樣效率和安全性都能得到保障。
以下是一個(gè)流程圖和流程說明。
1.服務(wù)端產(chǎn)生RSA密鑰對,把公鑰發(fā)給客戶端
2.客戶端的明文文用AES密鑰加密生成密文,然后通過RSA公鑰加密AES密鑰,就生成了key和info
3.把這兩個(gè)發(fā)送給服務(wù)端,用RSA私鑰解密得到AES密鑰
4.再用AES密鑰去解密密文,得到明文
注冊登錄時(shí)的密碼加密
MD5加鹽
這是一篇比較詳細(xì)的關(guān)于MD5的原文鏈接:https://blog.csdn.net/china_jeffery/article/details/78789108
MD5是MD5消息摘要算法的簡稱(英語:MD5 Message-Digest Algorithm),是一種廣泛使用的密碼散列函數(shù),可以產(chǎn)生出一個(gè)128位(16字節(jié))的散列值(即哈希值),用于確保信息傳輸?shù)耐暾浴D5由羅納德·李維斯特設(shè)計(jì),于1992年公開,用以取代MD4算法。這套算法的程序在RFC 1321 中被加以規(guī)范。
將數(shù)據(jù)(如一段文字)運(yùn)算變?yōu)榱硪还潭ㄩL度值,是散列算法的基礎(chǔ)原理。
MD5已經(jīng)被證實(shí)可以被碰撞破解。對于需要高度安全性的數(shù)據(jù),專家一般建議改用其他算法,如SHA-2。
只要明文相同,那么MD5加密后的密文就相同,于是攻擊者就可以通過撞庫的方式來破解出明文。 https://www.cmd5.com/ 這是一個(gè)破解MD5的網(wǎng)站,是收集了大量的MD5密文和明文的一個(gè)庫,所以現(xiàn)在的MD5并不安全。
這是我構(gòu)想的一個(gè)密碼傳輸?shù)牧鞒?#xff1a;(如果有哪里不對或者有更好的歡迎交流)
這時(shí)候就需要加點(diǎn)佐料,讓它變變味兒啦。
加鹽的算法有很多,考慮到加鹽的目的(防止擁有系統(tǒng)底層權(quán)限的人員),想做到絕對不可反查是很困難的,需要有其他軟件或者硬件的協(xié)助,在很多場景下的實(shí)用性比較差。如果只是想增加反查的難度,倒是有很多方法可以選擇,一種便利的方法是md5(Password+UserName),即將用戶名和密碼字符串相加再M(fèi)D5,這樣的MD5摘要基本上不可反查。但有時(shí)候用戶名可能會(huì)發(fā)生變化,發(fā)生變化后密碼即不可用了(驗(yàn)證密碼實(shí)際上就是再次計(jì)算摘要的過程)。
所以要MD5加鹽了,“鹽”指的是計(jì)算機(jī)動(dòng)態(tài)生成的隨機(jī)碼,這個(gè)隨機(jī)碼會(huì)與密碼一起被MD5進(jìn)行散列計(jì)算,再與生成序列一同存進(jìn)數(shù)據(jù)庫。再次進(jìn)行登錄驗(yàn)證密碼時(shí),由于經(jīng)過散列計(jì)算處理的數(shù)據(jù)不可逆向恢復(fù),所以需通過對輸入密碼結(jié)合隨機(jī)碼進(jìn)行散列計(jì)算,將得到的值再去數(shù)據(jù)庫進(jìn)行匹配
MD5是不可逆的,所以就算是管理員打開數(shù)據(jù)庫中的數(shù)據(jù)時(shí)也是經(jīng)過加密的,這樣更保障了數(shù)據(jù)的安全性,在我們?nèi)粘V行枰浢艽a了,也是只能改密碼并不能獲取到原來的密碼。
因此我們做了一個(gè)非常簡單的算法,每次保存密碼到數(shù)據(jù)庫時(shí),都生成一個(gè)隨機(jī)16位數(shù)字,將這16位數(shù)字和密碼相加再求MD5摘要,然后在摘要中再將這16位數(shù)字按規(guī)則摻入形成一個(gè)48位的字符串。在驗(yàn)證密碼時(shí)再從48位字符串中按規(guī)則提取16位數(shù)字,和用戶輸入的密碼相加再M(fèi)D5。按照這種方法形成的結(jié)果肯定是不可直接反查的,且同一個(gè)密碼每次保存時(shí)形成的摘要也都是不同的。
或者 可以往密碼中加鹽的時(shí)候,固定加的位置,比如說從第三位到第六位是鹽等等,使得其他人獲取不到真正的密碼。
總結(jié)
以上是生活随笔為你收集整理的对于AES和RSA算法的结合使用以及MD5加盐注册登录时的密码加密的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php原生态三级联动_ajax php实
- 下一篇: java之arr.toString()与