公鑰加密,私鑰解密 私鑰簽名,公鑰驗籤雜湊演算法,也叫做雜湊函式,是從乙個任何一種資料中建立小的數字方法,雜湊函式把訊息或者資料壓縮成摘要,有時候也叫做摘要演算法。 把資料量變小,將資料的格式固定下來。
常用的演算法有:md5 sha1
md5 不是一種加密演算法,是一種摘要演算法,無論多長的輸入, md5 都會輸出長度為 128bits 的乙個串。
public static final byte computemd5(byte content) catch (nosuchalgorithmexception e)
}
sha1 演算法也是乙個摘要演算法, sha1 比 md5 更加安全,對於長度小於 2^64 位的訊息,sha1 會產生乙個 160 位的訊息摘要。
public static byte computesha1(byte content) catch (nosuchalgorithmexception e)
}
摘要演算法有摘要特性和不可逆特性,一般用於檢查檔案的完整性和資料簽名的場景。
加密,解密,其實就是將原來的明文檔案,使用某種演算法,進行計算,得到一段不可讀的資料:"密文",是用來保護資料的,保證資料不被非法竊取。
對稱加密,是指的就是:加、解密使用的是同一串秘鑰,所以叫做對稱加密,對稱加密只有乙個秘鑰作為私鑰。
常用演算法有:des、3des、blowfish、idea、rc4、rc5、rc6和aes
對稱加密比非對稱加密演算法效率很高,執行速度快,但是 不是非常安全,秘鑰管理分發困難。
指的是加、解密使用不同的秘鑰,一把作為公開的公鑰,另一把作為私鑰,公鑰加密,私鑰解密,反之,私鑰加密,公鑰解密。
常用演算法有:rsa、ecc(移動裝置用)、diffie-hellman、el gamal、dsa(數字簽名用)
安全性更高,公鑰是公開的,私鑰自己儲存, 缺點是執行時間長,速度慢,適合對少量資料進行加密。
base64 演算法就是編碼演算法,不是加密演算法。base64 編碼的目的是把任意二進位制編碼成文字。
一般是因為二進位制進行資料傳輸時,網路中間的有些路由會把 ascii 碼中的不可見字元刪除,導致資料不一致,因此一般會進行 url 進行 base64編碼
測試**:
string str="測試";
string b64=base64.getencoder().encodetostring(str.getbytes("utf-8"));
system.out.println("base64編碼之後:"+b64);
string ori=new string(base64.getdecoder().decode(b64),"utf-8");
system.out.println("base64解碼之後:"+ori);
執行結果:
base64編碼之後:5rwl6k+v
base64解碼之後:測試
utf-8 -> base64(編碼) -> ascii
ascii -> base64(解碼) -> utf-8
http協議中引數的傳輸是"key=value"這種鍵值對形式。
name1=value1&name2=value2
測試**:
public static void main(string args)
執行結果
url編碼之後:%e6%b5%8b%e8%af%95
url解密之後:測試
數字簽名,就是通過可鑑別的數字資訊驗證身份的一種方式。
資料前面有兩種運算: 簽名、驗籤。
簽名驗籤可以驗證傳送方身份,防止 中間人攻擊 ,csrf 跨域偽造身份攻擊。
訊息傳送者:
報文明文(xml)轉換成位元組陣列, utf-8 編碼。
使用 base64 進行編碼,生成訊息內容資料: msg
使用 sha1 對位元組陣列進行簽名。生成摘要資料: sign
訊息接收者:
接受訊息msg訊息後進行 base64 解碼。
使用 sha1 演算法進行資料msg+sign 驗籤。
公鑰 私鑰 公鑰 私鑰 簽名 驗籤 說的啥?
公鑰加密,私鑰解密 私鑰簽名,公鑰驗籤 雜湊演算法,也叫做雜湊函式,是從乙個任何一種資料中建立小的數字方法,雜湊函式把訊息或者資料壓縮成摘要,有時候也叫做摘要演算法。把資料量變小,將資料的格式固定下來。常用的演算法有 md5 sha1 md5 不是一種加密演算法,是一種摘要演算法,無論多長的輸入,m...
php 公鑰加密 私鑰解密 私鑰加簽 公鑰驗籤
其中使用php函式可參考php openssl 公鑰加密 param data 加密資料 return mixed author xin.he date 2020 06 03 public function encryption data 公鑰加密 param data 加密資料 return mi...
RSA公鑰 私鑰 簽名和驗籤
rsa又叫非對稱加密演算法,這類加密演算法有一對秘鑰,其中乙個用來加密乙個用來解密。這一對秘鑰中你可以選擇乙個作為私鑰 自己儲存 另乙個作為公鑰 對外公開 用私鑰加密的內容只能用對應的公鑰解密,反之用公鑰加密的內容只能用對應的私鑰解密。還有一種對稱加密演算法,其加密秘鑰和解密秘鑰為同乙個秘鑰,比如d...