commons-codec 加密算法

 commons-codec包能夠從apache下載,最新版是1.3java

不可逆算法算法

1.MD5apache

String str = "abc";
DigestUtils.md5Hex(str);安全

附.net生成MD5的方法,生成內容跟java一致:函數

String str = "abc";
FormsAuthentication.HashPasswordForStoringInConfigFile(str, "MD5");
加密

 

2.SHA1.net

String str = "abc";
DigestUtils.shaHex(str);設計

附.net生成SHA1的方式,生成內容跟java一致:code

String str = "abc";
FormsAuthentication.HashPasswordForStoringInConfigFile(str, "SHA1");
orm

 

可逆算法

常規加密解密算法:BASE64

加密

String str= "abc"; // abc爲要加密的字符串
byte[] b = Base64.encodeBase64(str.getBytes(), true);
System.out.println(new String(b));

解密

String str = "YWJj"; // YWJj爲要解密的字符串
byte[] b = Base64.decodeBase64(str.getBytes());
System.out.println(new String(b));

 

散列算法

散列是信息的提煉,一般其長度要比信息小得多,且爲一個固定長度。加密性強的散列必定是不可逆的,這就意味着經過散列結果,沒法推出任何部分的原始信息。任何輸入信息的變化,哪怕僅一位,都將致使散列結果的明顯變化,這稱之爲雪崩效應。散列還應該是防衝突的,即找不出具備相同散列結果的兩條信息。具備這些特性的散列結果就能夠用於驗證信息是否被修改。

單向散列函數通常用於產生消息摘要,密鑰加密等,常見的有:

l         MD5(Message Digest Algorithm 5):是RSA數據安全公司開發的一種單向散列算法,非可逆,相同的明文產生相同的密文。

l         SHA(Secure Hash Algorithm):能夠對任意長度的數據運算生成一個160位的數值;

SHA-1MD5的比較

由於兩者均由MD4導出,SHA-1和MD5彼此很類似。相應的,他們的強度和其餘特性也是類似,但還有如下幾點不一樣:

l         對強行供給的安全性:最顯著和最重要的區別是SHA-1摘要比MD5摘要長32 位。使用強行技術,產生任何一個報文使其摘要等於給定報摘要的難度對MD5是2128數量級的操做,而對SHA-1則是2160數量級的操做。這樣,SHA-1對強行攻擊有更大的強度。

l         對密碼分析的安全性:因爲MD5的設計,易受密碼分析的攻擊,SHA-1顯得不易受這樣的攻擊。

l         速度:在相同的硬件上,SHA-1的運行速度比MD5慢。

相關文章
相關標籤/搜索