DES信息加密解密
来源:互联网 发布:win7允许程序访问网络 编辑:程序博客网 时间:2024/06/02 21:30
import java.security.Key;
import java.security.SecureRandom;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
/**
* DES数据加密
*/
class DESUtil {
//指定DES加密解密的密钥
private static Key key;
private static String KEY_STR = "myKey";
static {
try{
KeyGenerator generator = KeyGenerator.getInstance("DES");
generator.init(new SecureRandom(KEY_STR.getBytes()));
key = generator.generateKey();
generator = null;
} catch (Exception e) {
throw new RuntimeException(e);
}
}
//加密方法
public static String getEncryptString(String str) {
BASE64Encoder base64en = new BASE64Encoder();
try{
byte[] strBytes = str.getBytes("UTF8");
Cipher cipher = Cipher.getInstance("DES");
cipher.init(Cipher.ENCRYPT_MODE, key);
byte[] enctyptStrBytes = cipher.doFinal(strBytes);
return base64en.encode(enctyptStrBytes);
} catch (Exception e){
throw new RuntimeException(e);
}
}
//解密方法
public static String getDecryptString(String str) {
BASE64Decoder base64De = new BASE64Decoder();
try {
byte[] strBytes = base64De.decodeBuffer(str);
Cipher cipher = Cipher.getInstance("DES");
cipher.init(Cipher.DECRYPT_MODE, key);
byte[] decryptStrBytes = cipher.doFinal(strBytes);
return new String(decryptStrBytes, "UTF8");
} catch(Exception e) {
throw new RuntimeException(e);
}
}
public static void main(String[] args) {
if (args==null || args.length<1)
System.out.println("请输入要加密的字符,用空格分隔");
else {
for (String arg : args) {
System.out.println("原文:" + arg);
System.out.println("加密:" + getEncryptString(arg));
System.out.println("解密:" + getDecryptString( getEncryptString(arg) ));
}
}
}
}
- DES信息加密解密
- DES/3DES加密,解密
- DES加密解密代码
- 3DES 加密解密
- DES加密解密函数
- DES加密解密
- DES加密、解密
- des加密解密
- DES 加密/解密整理
- DES加密解密
- C#DES加密解密
- DES加密解密
- 文件DES加密解密
- c# DES 加密解密
- 3des加密解密
- java--des加密解密
- DES加密解密算法
- DES加密解密
- abstract类和interface的区别(剽窃的)
- Java Socket实战之一 单线程通信
- MySql 动态行转列整理
- jQuery load()方法用法集锦!
- Eclipse Java注释模板设置详解
- DES信息加密解密
- 随感
- android sqlite 数据类型
- 数据库函数之nvl
- 矩阵中的“马鞍点”,即满足该元素在所在行最小,在所在列最大
- 4字节UTF16编码和对C++/Java的影响
- 解决NDK出现error: exception handling disabled, use -fexceptions to enable的问题
- Java Socket实战之二 多线程通信
- 解密module_init