JAVA密碼演算法

2021-08-17 08:16:43 字數 1696 閱讀 1395

1:對稱性加密

這種加密方法加密解密都只用乙個密匙,加解密速度快,它要求傳送方和接收方在安全通訊之

前,商定乙個金鑰,這種加密演算法的安全性依賴於金鑰,洩漏金鑰就意味著任何人都可以對他

們傳送或接收的訊息解密,所以金鑰的保密性對通訊性至關重要。

常用的對稱性加密演算法有:des、3des、blowfish、rc2、aes以及國密的sm4,國密sm4是

為了保障商用密碼安全,國家商用密碼管理辦公室制定了一系列密碼標準。

2:非對稱性加密

這種加密演算法把密匙分成了兩個,乙個自己持有的叫私鑰,另乙個給對方,叫公鑰,公鑰加密

的資料只有私鑰能解開,私鑰加密的資料公鑰能解開。

非堆成加密是使用公鑰加密,私鑰解密。

非對稱演算法加密有rsa,elgamal、揹包演算法、rabin、d-h、ecc(橢圓曲線加密演算法)以

及國家商用密碼sm2演算法。

3:數字簽名、資訊摘要

數字簽名是使用非對稱性加密,對來方的訊息進行確認是訊息傳送方發出的,防止訊息偽造和

驗證訊息是否被篡改過。

數字簽名:

是傳送方使用私鑰加密,接收方使用公鑰解密,演算法有:

rsa:rsa數字簽名演算法主要包括md和sha兩類,有加解密,基於大整數分解問題。

dsa:僅包含數字簽名,使用dsa這種演算法的證書是沒法進行加密通訊的,基於離散

對數問題,演算法速度很快。

ecdsa:橢圓曲線數字簽名演算法,是ecc與dsa的結合,與傳統的數字簽名演算法相比,速

度快,強度高,簽名短。

資訊摘要:

單向雜湊函式得到乙個固定長度的雜湊值,是乙個不可逆過程,常用的資訊摘要算

法有:md演算法: message digest algorithm ,目前主流的是md5演算法,為第五版演算法,

之前有md2、md3、md4演算法。

sha演算法:安全雜湊演算法(secure hash algorithm)主要適用於數字簽名標準

(digital signature standard dss)裡面定義的數字簽名演算法(digital

signature algorithm dsa);

mac演算法:帶有密碼資訊的資訊摘要演算法,是對md和sha演算法的演變和改進,包括

hmacmd2、hmacmd4、hmacmd5、hmacsha-256等。

要達到防止偽造和驗證資料是否被篡改的目的,可以將整個資訊進行簽名,但是一般信

息過長,加密太慢,可以對資訊的唯一摘要進行加密,就要使用到摘要演算法(hash算

法),將明文資訊生成乙個較短的固定長度的值,比如使用md5將文件加密得到乙個固定

長度的值,然後將簽名後的摘要和資訊和傳送給接收方,接收方首先對發過來的資訊進

行解密,解密得到乙個摘要(md5),然後再對接收的資訊進行md5加密,得到的md5結果

匹配解密後的摘要,如果匹配成功的話證明沒有修改過,簽名方式使用signature。

4:加密和加簽的區別

加密:公鑰放在客戶端,並使用公鑰對資料進行加密,服務端拿到資料後用私鑰進行解密;

加簽:私鑰放在客戶端,並使用私鑰對資料進行加簽,服務端拿到資料後用公鑰進行驗籤。

加密完全為了加密;加簽主要是為了防惡意攻擊,防止別人模擬我們的客戶端對我們的伺服器

進行攻擊,導致伺服器癱瘓。

古典密碼演算法 替代密碼演算法

替代密碼演算法 的原理是使用替代法進行加密,就是將明文中的字元用其它字元替代後形成密文。例如 明文本母a b c d 用d e f g做對應替換後形成密文。替代密碼包括多種型別,如單錶替代密碼 多明碼替代密碼 多字母替代密碼 多表替代密碼等。下面我們介紹一種典型的單錶替代密碼,愷撒 caesar 密...

古典密碼演算法 替代密碼演算法

替代密碼演算法 的原理是使用替代法進行加密,就是將明文中的字元用其它字元替代後形成密文。例如 明文本母a b c d 用d e f g做對應替換後形成密文。替代密碼包括多種型別,如單錶替代密碼 多明碼替代密碼 多字母替代密碼 多表替代密碼等。下面我們介紹一種典型的單錶替代密碼,愷撒 caesar 密...

檢測密碼規範Java

題目原題 檢測字串是否是乙個有效的密碼,檢測的規則如下 1 密碼必須至少為8位數字密碼。2 密碼僅能包含字母和數字。3 密碼必須包含至少兩個數字。方法 一 普通方法 public class checkpassword public static boolean checkpasswordmetho...