DES加密解密测试
package com.des;import java.security.SecureRandom;import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESKeySpec;public class DES {public DES() {}//測試public static void main(String args[]) {//待加密內容String str = "測試內容";//密碼,長度要是8的倍數String password = "9588028820109132570743325311898426347857298773549468758875018579537757772163084478873699447306034466200616411960574122434059469100235892702736860872901247123456";byte[] result = DES.encrypt(str.getBytes(),password);System.out.println("加密后:"+new String(result));//直接將如上內容解密try {byte[] decryResult = DES.decrypt(result, password);System.out.println("解密后:"+new String(decryResult));} catch (Exception e1) {e1.printStackTrace();}}/*** 加密* @param datasource byte[]* @param password String* @return byte[]*/public static byte[] encrypt(byte[] datasource, String password) {try{SecureRandom random = new SecureRandom();DESKeySpec desKey = new DESKeySpec(password.getBytes());//創建一個密匙工廠,然后用它把DESKeySpec轉換成SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");SecretKey securekey = keyFactory.generateSecret(desKey);//Cipher對象實際完成加密操作Cipher cipher = Cipher.getInstance("DES");//用密匙初始化Cipher對象cipher.init(Cipher.ENCRYPT_MODE, securekey, random);//現在,獲取數據并加密//正式執行加密操作return cipher.doFinal(datasource);}catch(Throwable e){e.printStackTrace();}return null;}/*** 解密* @param src byte[]* @param password String* @return byte[]* @throws Exception*/public static byte[] decrypt(byte[] src, String password) throws Exception {// DES算法要求有一個可信任的隨機數源SecureRandom random = new SecureRandom();// 創建一個DESKeySpec對象DESKeySpec desKey = new DESKeySpec(password.getBytes());// 創建一個密匙工廠SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");// 將DESKeySpec對象轉換成SecretKey對象SecretKey securekey = keyFactory.generateSecret(desKey);// Cipher對象實際完成解密操作Cipher cipher = Cipher.getInstance("DES");// 用密匙初始化Cipher對象cipher.init(Cipher.DECRYPT_MODE, securekey, random);// 真正開始解密操作return cipher.doFinal(src);}
}
轉載:http:/
/www.cnblogs.com/langtianya/p/3715975.html
總結
- 上一篇: Miko二次元动漫视频网站源码 视频播放
- 下一篇: 专利法上的抽象思想与具体技术 ——计算机