程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 一個Java設置裝備擺設文件加密解密對象類分享

一個Java設置裝備擺設文件加密解密對象類分享

編輯:關於JAVA

一個Java設置裝備擺設文件加密解密對象類分享。本站提示廣大學習愛好者:(一個Java設置裝備擺設文件加密解密對象類分享)文章只能為提供參考,不一定能成為您想要的結果。以下是一個Java設置裝備擺設文件加密解密對象類分享正文


罕見的如: 數據庫用戶暗碼,短信平台用戶暗碼,體系間校驗的固定暗碼等。
本對象類參考了 《Spring.3.x企業運用開辟實戰》一書 5.3節的完成。
完全代碼與正文信息以下:

package com.cncounter.util.comm;

import java.security.Key;
import java.security.SecureRandom;

import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;

import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;

public class DESUtils {

 // 密鑰
 private static Key key;
 // KEY種子
 private static String KEY_STR = "[email protected]";
 // 常量
 public static final String UTF_8 = "UTF-8";
 public static final String DES = "DES";

 // 靜態初始化
 static{
  try {
   // KEY 生成器
   KeyGenerator generator = KeyGenerator.getInstance(DES);
   // 初始化,平安隨機算子
   generator.init(new SecureRandom( KEY_STR.getBytes(UTF_8) ));
   // 生成密鑰
   key = generator.generateKey();
   generator = null;
  } catch (Exception e) {
   throw new RuntimeException(e);
  }
 }

 /**
  * 對源字符串加密,前往 BASE64編碼後的加密字符串
  * @param source 源字符串,明文
  * @return 密文字符串
  */
 public static String encode(String source){
  try {
   // 依據編碼格局獲得字節數組
   byte[] sourceBytes = source.getBytes(UTF_8);
   // DES 加密形式
   Cipher cipher = Cipher.getInstance(DES);
   cipher.init(Cipher.ENCRYPT_MODE, key);
   // 加密後的字節數組
   byte[] encryptSourceBytes = cipher.doFinal(sourceBytes);
   // Base64編碼器
   BASE64Encoder base64Encoder = new BASE64Encoder();
   return base64Encoder.encode(encryptSourceBytes);
  } catch (Exception e) {
   // throw 也算是一種 return 途徑
   throw new RuntimeException(e);
  }
 }

 /**
  * 對本對象類 encode() 辦法加密後的字符串停止解碼/解密
  * @param encrypted 被加密過的字符串,即密文
  * @return 明文字符串
  */
 public static String decode(String encrypted){
  // Base64解碼器
  BASE64Decoder base64Decoder = new BASE64Decoder();
  try {
   // 先輩行base64解碼
   byte[] cryptedBytes = base64Decoder.decodeBuffer(encrypted);
   // DES 解密形式
   Cipher cipher = Cipher.getInstance(DES);
   cipher.init(Cipher.DECRYPT_MODE, key);
   // 解碼後的字節數組
   byte[] decryptStrBytes = cipher.doFinal(cryptedBytes);
   // 采取給定編碼格局將字節數組釀成字符串
   return new String(decryptStrBytes, UTF_8);
  } catch (Exception e) {
   // 這類情勢確切合適處置對象類
   throw new RuntimeException(e);
  }
 }
 // 單位測試
 public static void main(String[] args) {
  // 須要加密的字符串
  String email = "[email protected]";
  // 加密
  String encrypted = DESUtils.encode(email);
  // 解密
  String decrypted = DESUtils.decode(encrypted);
  // 輸入成果;
  System.out.println("email: " + email);
  System.out.println("encrypted: " + encrypted);
  System.out.println("decrypted: " + decrypted);
  System.out.println("email.equals(decrypted): " + email.equals(decrypted));
 }
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved