2 加密解密和hash

2021-10-06 07:00:31 字數 2169 閱讀 5231

可以加密任何二進位制資料

非對稱加密的出現使得密碼學有了更廣泛的用途:數字簽名

通訊雙方使用同乙個金鑰,對 原資料 使用加密演算法配合上金鑰加密生成 密文。解密時對 密文 使用加密過程的完全逆過程配合金鑰來進行解密 生成原文。

經典演算法

對稱加密的作用

加密通訊,防止資訊在不安全的網路上被截獲後,資訊被人讀取或篡改

對稱加密的破解

破解思路

拿到一組或多組原文-密文對

設法找到乙個金鑰,這個金鑰可以將原文-密文對中的原文加密為密文,並可以將密文解密為原文,即成功破解

反破解乙個優秀演算法的對稱加密的標準是,讓破解者找不到比窮舉法更有效的破解手段,並且窮舉法的破解時間總夠長

對稱加密的缺點

金鑰洩漏:不能在不安全的網路上傳輸金鑰,一旦金鑰洩漏則加密通訊變得毫無意義

使用 公鑰 對資料使用 加密演算法 得到密文;使用 私鑰 對資料使用 同樣的加密演算法 得到原資料。

非對稱加密使用的是複雜的數學技巧。

加密和解密使用同樣的演算法。

公鑰和私鑰間可以進行互解

數字簽名

由於私鑰和公鑰互相可解,因此非對稱加密還可以用於數字簽名技術

通常會對原資料進行 hash 以後對 hash 值簽名,然後附加在原資料後面作為簽名。對原資料 hash 是為了讓簽名比較小。

數字簽名和加密的不同

數字簽名是使用自己的 私鑰 簽名,對方用 公鑰 解密,以驗證資料是否正確,所有人都能看到原資料。

加密是使用對方的 公鑰 進行加密,對方的 私鑰 解密,防止資料在傳輸過程中洩漏 ,只有通訊雙方可以看到原資料

經典演算法

非對稱加密的優缺點

非對稱加密的破解

破解思路

反破解和對稱加密一樣,非對稱加密演算法的優秀標準是讓破解者找不到比窮舉法更好的破解手段,並且窮覺法的破解時間足夠長。

登入密碼(password 通行證)

目地:資料提供方或應用服務方對賬戶擁有者資料的保護,保證【你是你】的時候才提供許可權

焦點:身份

base64

將二進位制資料轉換成 由64個字元組成的編碼演算法 編碼的 字串

什麼是二進位制資料
base64 演算法原理

將原資料每 6 位 對應成 base64 索引表中的乙個字元,所有的字元組合成乙個字元字串(每個字元 8 位)

base64 的用途

base64 的缺點

由於自身的原理(6 位變 8 位),因此每次 base64 編碼後,資料都會增大約 1/3,所以會影響儲存和傳輸效能。

base64 加密傳輸更安全和高效?

首先base64 不是加密,另外base64由於上述缺點,降低了網路效能,增大使用者,是更低效的手段

base64 對進行編碼是為了 有時需要使用 文字形式來傳輸。其他時候不需要對額外處理

變種:base58

位元幣的編碼方式,去掉了base64中的數字 「0」,字幕大寫 o,字母大寫 i,和字幕小寫 l,以及 + 和 / 符號,用於位元幣位址的表示。

base58 對於 base64 的改動,主要的目地在於使用者的便捷性。由於去掉了難以區分的字元,使得 base58 對於 人工抄寫 更加方便。另外,去掉了 + / 符號後也讓大多數軟體可以方便的雙擊選取。

url 使用的百分號編碼

在 url 的字串中,對於一些不用於特殊用途的保留字元,使用百分號 「%」 為字首進行單獨編碼,以避免出現解析錯誤含義

目地減小資料占用的儲存空間。

把資料物件(一般是記憶體中的)轉換成位元組序列的過程。物件在程式記憶體裡的存放形式是散亂的,通過序列化可以把記憶體中的物件轉換成乙個位元組序列,從而使用 byte 等進行性本地儲存或網路傳輸,在需要的時候重新組裝(反序列化)來使用

目地讓記憶體中的物件可以被儲存和傳輸

和編碼的區別

編碼是把資料由一種格式轉換成另一種格式;而序列化是把資料由記憶體中的物件(而不是某種具體的格式)轉換為位元組序列

定義把任意資料轉換成指定大小(通常很小,例如 256 位元組以內)範圍的資料

作用相當於從資料中提出摘要資訊,因此做主要的用途是數字指紋

hash的實際用途含義:乙個由整數向現實世界中的文字元號的 map

分支:

gbk / gb2312 / gb18030:中國⾃自研標準,多位元組,字符集 + 編碼

des vue 加密解密 DES加密 解密

外掛程式描述 des data encryption standard 是發明最早的最廣泛使用的分組對稱加密演算法。des演算法簡介 des data encryption standard 是發明最早的最廣泛使用的分組對稱加密演算法。des演算法的入口引數有三個 key data mode。其中k...

對稱加密 利用mcrypt實現加密解密 2

加密解密類 也是對稱加密 aes 模式,和 我之前寫的 利用mcrypt實現加密解密 1 的區別是 這個生成的秘鑰是唯一的,之前的是多個秘鑰解密的值是一樣的 注意 php版本在 7.1.9以上的不贊成使用 mcrypt module open 函式 貼上即用 class cryptaes funct...

對稱加密 AES和DES加密 解密

對稱加密 aes和des加密 解密 目前主流的加密方式有 對稱加密 aes des 非對稱加密 rsa dsa 呼叫aes des加密演算法包最精要的就是下面兩句話 cipher cipher cipher.getinstance des cbc pkcs5padding cipher.init c...