部分加密算法簡單介紹
1.對稱加密:使用相同密鑰加密解密。
對稱加密算法:DES、AES等
2.非對稱加密:加密解密使用不同密鑰
代表算法:RSA
RSA加密算法加密解密使用不同的密鑰,可以用於加密和認證。
加密:公鑰負責加密,私鑰負責解密。
認證:私鑰負責簽名,公鑰負責驗證。
認證原理:
3.摘要算法
MD5: 輸入任意長度的原文字符串,返回128位的加密數據。(不可逆)
SHA1:輸入任意長度的原文字符串,返回160位的加密數據。(不可逆)
典型應用:
1.加密用戶密碼
2.網上下載大文件的時候,會提供文件的MD5值,用戶在下載後可以在下載文件的基礎上計算MD5值,如果和提供的MD5相同,
說明沒有損壞或修改。(MD5只針對文件內容,文件名改變後不影響MD5數值)
3.判斷圖片是否重複
使用消息摘要技術(如MD5、SHA)。通過比較圖片產生的固定長度字符串,判斷圖片是否相等(如果兩兩圖片都比較每個像素,計算量太大)。
密碼加鹽:密碼很短的話,黑客可以利用彩虹表(枚舉所有密碼組合的加密值)反推出密碼,可以在短密碼後加上一端很長的字符再計算md5,加上的字符稱爲鹽。
加鹽例子如:Md5( md5(password) + salt) sha1( sha1(password) + salt)
CRC-32(循環冗餘檢驗):輸入任意長度的數據,返回32位的檢驗和
應用舉例:
檢測數據損壞:在數據第一次引入系統時計算檢驗和,在數據通過一個不可靠通道傳輸時再次計算檢驗和,如果新檢驗和和原檢驗和不相等,則認爲數據損壞,該方法只能檢測錯誤,不能修復數據。檢驗和也可能損壞,但檢驗和比數據小的多,損壞可能性非常小。、
比較兩篇文章的相似度?與上面的對比
答:1.對文章分詞,建立特徵向量,計算特徵向量之間的距離(歐氏距離、海明距離、夾角餘弦)。但海量數據,兩兩計算量太大。
2.simhash. 內容越相同,simhash越相似。
A.分詞 得到特徵向量(詞)和權重
B.Hash 計算各個特徵向量的hash值
C.加權 對所有特徵向量加權,hash值二進制爲1的變爲weight,爲0的變爲-weight
D.合併 將各個特徵向量的加權結果累加
E.降維 累加結果大於0的置1,否則置0,得到simhash簽名
64位simhash值,海明距離<=3可認爲相似度比較高。將64位二進制均分成4塊,如果兩個簽名海明距離<=3,必有一塊完全相等。對4塊分別建立倒排索引,只和四塊中的比較。