Java加密入門

來源:互聯網
上載者:User

密碼編譯演算法的分類:

1.對稱式加密 DES,AES

2.非對稱式加密 RSA, DSA, 

3.單向加密 MD5, SHA

對稱式加密的特點:

    1.雙方使用相同的密鑰,解密方事先必須知道加密金鑰

    2. 加密時使用什麼密鑰,解密時必須使用相同的密鑰

    3. 對同樣的資訊,使用不同的密鑰,加密結果理論上不相同

    在DES中,使用了一個56位的密鑰以及附加的8為同位位元,慘升最大64位的分組大小。攻擊DES,一般只能使用窮舉的密鑰搜尋,即重複嘗試各種密鑰直到有一個符合為止。

    3DES,即三重DES,是DES的加強版,也是DES的一個更安全的變形,它使用了3條56位的金鑰組資料進行三次加密,一般情況下,提供較強的安全性。

    加密步驟:

1.指明機密演算法的提供機構

Security.addProvider(new com.sun.crypto.provider.SunJce());

2. 執行個體化一個金鑰產生器

KeyGenerator keygen = KeyGenerator.getInstance("DESede");

3.產生密鑰

SecretKey desKey = keygen.generateKey();

4.定義一個Cipher對象,用他來加密、解密

Cipher c = Cipher.getInstance("DESede");

5. 對Cipher對象初始化,指明密鑰,加密/解密模式

c.init( Cipher.ENCRYPT_MODE, deskey);

6. 加密需要將明文轉換成byte流

byte[] src = msg.getBytes();

byte[] enc = c.doFinal();

7.輸出加密資訊,位元組流轉換成字串 String result = String(enc);


非對稱機密:

    在非對稱式加密演算法過程中,接受方產生一個公開密鑰和一個私人密鑰,前者公開,發送方將明文用接收方的公開密鑰進行處理,變成米問發送出去,接收方接到密文後,使用自己的私人密鑰堆密文解密,恢複為明文。

    加密過程和解密過程幾乎和DES類似,只是在產生密鑰的時候,產生一對密鑰,公開金鑰用於加密,私密金鑰用於解密。

KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance("RSA");

KeyPairGen.initizlize(1024);

KeyPair keyPair = KeyPairGen.generateKeyPair();

RSAPrivateKey privateKey = (RSAPrivateKey)keyPair.getPrivate();

RSAPublicKey publickey = (RSAPublicKey)keyPair.getPublic();


單向密碼編譯演算法的特點:

1. 密碼編譯演算法對同一訊息反覆執行該函數總得到相同的定義

2. 密碼編譯演算法產生的密文是不可預見的,密文看起來和明文沒有任何關係

3. 明文的任何微小變化都會對產生的密文產生很大的影響

4. 具有無法復原性

步驟:

1. 根據MD5演算法產生MessageDigest對象

2. 更新摘要

3. 完成雜湊計算,得到結果

SHA加密和MD5是一樣的。



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.