當前位置:編程學習大全網 - 源碼下載 - 求java加密源代碼(MD5,base64)

求java加密源代碼(MD5,base64)

import java.security.*;

import javax.crypto.*;

/**

* 本例解釋如何利用DES私鑰加密算法加解密

*

* @author Devon

* @version 1.0 04/03/10

*/

public class SingleKeyExample {

public static void main(String[] args) {

try {

String algorithm = "DES"; //定義加密算法,可用 DES,DESede,Blowfish

String message = "Hello World. 這是待加密的信息";

// 生成個DES密鑰

KeyGenerator keyGenerator = KeyGenerator.getInstance(algorithm);

keyGenerator.init(56); //選擇DES算法,密鑰長度必須為56位

Key key = keyGenerator.generateKey(); //生成密鑰

// 生成Cipher對象

Cipher cipher = Cipher.getInstance("DES");

//用密鑰加密明文(message),生成密文(cipherText)

cipher.init(Cipher.ENCRYPT_MODE, key); //操作模式為加密(Cipher.ENCRYPT_MODE),key為密鑰

byte[] cipherText = cipher.doFinal(message.getBytes()); //得到加密後的字節數組

System.out.println("加密後的信息: " + new String(cipherText));

//用密鑰加密明文(plainText),生成密文(cipherByte)

cipher.init(Cipher.DECRYPT_MODE, key); //操作模式為解密,key為密鑰

byte[] sourceText = cipher.doFinal(cipherText); //獲得解密後字節數組

System.out.println("解密後的信息: " + new String(sourceText));

} catch (Exception ex) {

ex.printStackTrace();

}

}

}

/**

* @author Devon

*/

import java.security.*;

import java.security.spec.*;

import javax.crypto.*;

public class PairKeyExample {

public static void main(String argv[]) {

try {

String algorithm = "RSA"; //定義加密算法,可用 DES,DESede,Blowfish

String message = "張三,妳好,我是李四";

//產生張三的密鑰對(keyPairZhang)

KeyPairGenerator keyGeneratorZhang =

KeyPairGenerator.getInstance(algorithm); //指定采用的算法

keyGeneratorZhang.initialize(1024); //指定密鑰長度為1024位

KeyPair keyPairZhang = keyGeneratorZhang.generateKeyPair(); //產生密鑰對

System.out.println("生成張三的公鑰對");

// 張三生成公鑰(publicKeyZhang)並發送給李四,這裏發送的是公鑰的數組字節

byte[] publicKeyZhangEncode = keyPairZhang.getPublic().getEncoded();

//通過網絡或磁盤等方式,把公鑰編碼傳送給李四

//李四接收到張三編碼後的公鑰,將其解碼

KeyFactory keyFacoryLi = KeyFactory.getInstance(algorithm); //得到KeyFactory對象

X509EncodedKeySpec x509KeySpec =

new X509EncodedKeySpec(publicKeyZhangEncode); //公鑰采用X.509編碼

PublicKey publicKeyZhang = keyFacoryLi.generatePublic(x509KeySpec); //將公鑰的KeySpec對象轉換為公鑰

System.out.println("李四成功解碼,得到張三的公鑰");

//李四用張三的公鑰加密信息,並發送給李四

Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding"); //得到Cipher對象

cipher.init(Cipher.ENCRYPT_MODE, publicKeyZhang); //用張三的公鑰初始化Cipher對象

byte[] cipherMessage = cipher.doFinal(message.getBytes()); //得到加密信息

System.out.println("加密後信息:" + new String(cipherMessage));

System.out.println("加密完成,發送給李四...");

//張三用自己的私鑰解密從李四處收到的信息

cipher.init(Cipher.DECRYPT_MODE, keyPairZhang.getPrivate()); //張三用其私鑰初始化Cipher對象

byte[] originalMessage = cipher.doFinal(cipherMessage); //得到解密後信息

System.out.println("張三收到信息,解密後為:" + new String(originalMessage));

} catch (Exception ex) {

ex.printStackTrace();

}

}

}

  • 上一篇:象棋遊戲源代碼
  • 下一篇:關於psp知識!……急喔!!!
  • copyright 2024編程學習大全網