java中常用的加密算法有:1.BASE64算法,二進(jìn)制數(shù)據(jù);2.MD5算法,散列函數(shù);3.SHA算法,消息摘要算法;4.RSA算法,用于加密和數(shù)字簽名的算法;5.DES算法,對(duì)稱密碼體制加密算法;6.PBE算法,基于口令的加密算法;7.DH算法,密鑰交換算法;8.DSA算法,數(shù)字簽名算法;9.ECC算法,橢圓加密算法;
java中常用的加密算法有以下幾種
1.BASE64算法
BASE64算法是一種基于64個(gè)可打印字符來(lái)表示二進(jìn)制數(shù)據(jù)的表示方法,Base64算法可以將任意序列的8位字節(jié)描述為一種不易被人直接識(shí)別的形式,其復(fù)雜程度小,但效率高。
2.MD5算法
MD5算法是計(jì)算機(jī)安全領(lǐng)域廣泛使用的一種散列函數(shù),用以提供消息的完整性保護(hù),MD5是以512位分組來(lái)處理輸入的信息,且每一分組又被劃分為16個(gè)32位子分組,經(jīng)過(guò)了一系列的處理后,算法的輸出由四個(gè)32位分組組成,將這四個(gè)32位分組級(jí)聯(lián)后將生成—個(gè)128位散列值。
3.SHA算法
SHA算法是一種消息摘要算法,SHA1主要適用于數(shù)字簽名標(biāo)準(zhǔn)里面定義的數(shù)字簽名算法。
4.RSA算法
RSA算法是一種使用不同的加密密鑰與解密密鑰,是由已知加密密鑰推導(dǎo)出解密密鑰在計(jì)算上是不可行的密碼體制,其原理是根據(jù)數(shù)論,尋求兩個(gè)大素?cái)?shù)比較簡(jiǎn)單,而將它們的乘積進(jìn)行因式分解卻極其困難,因此可以將乘積公開作為加密密鑰。
5.DES算法
DES算法是一種對(duì)稱密碼體制加密算法,為密碼體制中的對(duì)稱密碼體制,其 明文按64位進(jìn)行分組,密鑰長(zhǎng)64位,密鑰是以56位參與DES運(yùn)算,且第8、16、24、32、40、48、56、64位是校驗(yàn)位,分組后的明文組和56位的密鑰按位替代或交換的方法形成密文組的加密方法。
6.PBE算法
PBE算法是一種基于口令的加密算法,其特點(diǎn)在于口令是由用戶自己掌握的,采用隨機(jī)數(shù)雜湊多重加密等方法保證數(shù)據(jù)的安全性,且PBE算法沒(méi)有密鑰的概念,密鑰在其它對(duì)稱加密算法中是經(jīng)過(guò)算法計(jì)算得出來(lái)的,PBE算法則是使用口令替代了密鑰。
7.DH算法
DH算法是一種密鑰交換算法,可以讓雙方在完全沒(méi)有對(duì)方任何預(yù)先信息的條件下通過(guò)不安全信道建立起一個(gè)密鑰,且密鑰可以在后續(xù)的通訊中作為對(duì)稱密鑰來(lái)加密通訊內(nèi)容。
8.DSA算法
DSA算法是一種數(shù)字簽名算法,是一種公開密鑰算法,其不能用作加密,只用作數(shù)字簽名,DSA算法使用公開密鑰,可以為接受者驗(yàn)證數(shù)據(jù)的完整性和數(shù)據(jù)發(fā)送者的身份。
9.ECC算法
ECC算法是一種橢圓加密算法,可以通過(guò)較短的密鑰達(dá)到相同的安全程度,常用于用于加解密、簽名驗(yàn)簽,也可以與DH結(jié)合使用,用于密鑰磋商。