java加密技术DES和Base64实例
来源:互联网 发布:北外网院网络教学平台 编辑:程序博客网 时间:2024/04/28 23:54
1、实例
import sun.misc.BASE64Decoder;import sun.misc.BASE64Encoder;import javax.crypto.Cipher;import javax.crypto.SecretKey;import javax.crypto.SecretKeyFactory;import javax.crypto.spec.DESKeySpec;import java.security.SecureRandom;public class DESCoder { public static final String ALGORITHM = "DES"; /** * DES解密 */ public static byte[] decrypt(byte[] data, String key) throws Exception { try{ SecureRandom random = new SecureRandom(); DESKeySpec desKey = new DESKeySpec(key.getBytes()); SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(ALGORITHM); SecretKey securekey = keyFactory.generateSecret(desKey); Cipher cipher = Cipher.getInstance(ALGORITHM); // 用密匙初始化Cipher对象 cipher.init(Cipher.DECRYPT_MODE, securekey, random); // 真正开始解密操作 return cipher.doFinal(data); }catch(Throwable e){ e.printStackTrace(); } return null; } /** * DES加密 */ public static byte[] encrypt(byte[] data, String key) throws Exception { try{ SecureRandom random = new SecureRandom(); DESKeySpec desKey = new DESKeySpec(key.getBytes()); SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(ALGORITHM); SecretKey securekey = keyFactory.generateSecret(desKey); Cipher cipher = Cipher.getInstance(ALGORITHM); //用密匙初始化Cipher对象 cipher.init(Cipher.ENCRYPT_MODE, securekey, random); //现在,获取数据并加密 //正式执行加密操作 return cipher.doFinal(data); }catch(Throwable e){ e.printStackTrace(); } return null; } /** * 利用Base64对生成秘钥 */ public static String initKey(String seed) throws Exception { String initKey = null; if (seed != null) { initKey = encryptBASE64(seed.getBytes());; } else { initKey = encryptBASE64("abc123".getBytes()); } return initKey; } /** * BASE64解密 */ public static byte[] decryptBASE64(String key) throws Exception { return (new BASE64Decoder()).decodeBuffer(key); } /** * BASE64加密 */ public static String encryptBASE64(byte[] key) throws Exception { return (new BASE64Encoder()).encodeBuffer(key); }}/** * 测试类 */import org.junit.Test;public class DESCoderTest { @Test public void test() throws Exception { //String inputStr = "卖家代充123abc"; String inputStr = "鄢间"; System.err.println("原文:\t" + inputStr); //生成秘钥 String key = DESCoder.initKey("abc123"); System.err.println("密钥:\t" + key); //加密 byte[] inputData = inputStr.getBytes(); inputData = DESCoder.encrypt(inputData, key); System.err.println("加密后:\t" + inputData); //解密 byte[] outputData = DESCoder.decrypt(inputData, key); String outputStr = new String(outputData); System.err.println("解密后:\t" + outputStr); //验证 Boolean isEquals = assertEquals(inputStr, outputStr); System.out.println(isEquals); } public Boolean assertEquals(String inPut, String outPut){ if(inPut.equals(outPut)){ return true; } return false; }}
0 0
- java加密技术DES和Base64实例
- 有关Des加密,与base64加密技术
- (iOS)Base64加密和DES加密、以及JAVA和iOS中DES加密统一性问题
- des 和 3des 的base64加密
- java常用工具类之DES和Base64加密解密类
- java常用工具类之DES和Base64加密解密类
- java常用工具类之DES和Base64加密解密类
- java加密技术--base64
- DES和Base64加密解密类
- Java DES 加密解密 实例
- DES+Base64 加密、解密
- DES加密 base64转化
- Java Base64加密解码实例
- Java Base64加密解码实例
- Java Base64加密解码实例
- 【请求加密】android ios java后台通用DES base64加密
- 【Java】(1)Base64加密技术
- des加密加密 base64 utf8
- Codeforces 365(Div.2)A.Mishka and Game【水题】
- 在中国使用chromium镜像
- 基础篇之二:修改状态栏颜色
- 源码编译安装php5.6
- 我在企业中是怎么简单使用Git的参与团队开发的?Git使用教程
- java加密技术DES和Base64实例
- Codeforces#365 (Div.2) Mishka and trip【思维】
- Codeforces703B Mishka and trip
- OC中所需要用到的重点
- hdoj 1875 畅通工程再续 ( 最小生成树--prim )
- hadoop 2.6全分布安装
- JS 倒计时
- ZoomButton的使用
- enum学习