Java加密算法汇总
Base64:
?MD5:
public static String Encrypt(String str) { Security.addProvider(new com.sun.crypto.provider.SunJCE()); sun.misc.BASE64Encoder encoder = new sun.misc.BASE64Encoder(); String strOut = ""; try { // DES算法要求有一个可信任的随机数源 SecureRandom sr = new SecureRandom(); // 从原始密匙数据创建DESKeySpec对象 DESKeySpec dks = new DESKeySpec(KEY_STRING.getBytes()); // 创建一个密匙工厂,然后用它把DESKeySpec转换成 // 一个SecretKey对象 SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES"); SecretKey key = keyFactory.generateSecret(dks); // Cipher对象实际完成加密操作 Cipher cipher = Cipher.getInstance("DES"); // 用密匙初始化Cipher对象 cipher.init(Cipher.ENCRYPT_MODE, key, sr); // 现在,获取数据并加密 byte data[] = str.getBytes(); /* 用某种方法获取数据 */ // 正式执行加密操作 byte encryptedData[] = cipher.doFinal(data); strOut = encoder.encode(encryptedData); } catch (Exception e) { e.printStackTrace(); } return strOut; } public static String Decrypt(String s) { Security.addProvider(new com.sun.crypto.provider.SunJCE()); String strOut = ""; sun.misc.BASE64Decoder decoder = new sun.misc.BASE64Decoder(); try { // DES算法要求有一个可信任的随机数源 SecureRandom sr = new SecureRandom(); // 从原始密匙数据创建一个DESKeySpec对象 DESKeySpec dks = new DESKeySpec(KEY_STRING.getBytes()); // 创建一个密匙工厂,然后用它把DESKeySpec对象转换成 // 一个SecretKey对象 SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES"); SecretKey key = keyFactory.generateSecret(dks); // Cipher对象实际完成解密操作 Cipher cipher = Cipher.getInstance("DES"); // 用密匙初始化Cipher对象 cipher.init(Cipher.DECRYPT_MODE, key, sr); // 现在,获取数据并解密 byte encryptedData[] = decoder.decodeBuffer(s); /* 获得经过加密的数据 */ // 正式执行解密操作 byte decryptedData[] = cipher.doFinal(encryptedData); strOut = new String(decryptedData); } catch (Exception e) { e.printStackTrace(); } return strOut; } public static void main(String[] args){ String a=Encrypt("aaa"); System.out.print(a); String b=Decrypt("5991bf21cbe98232".toUpperCase()); System.out.print(b); }? 1 楼 fjlyxx 2008-12-01 DES代码会有问题的
JVM安全文件
security.provider.1=sun.security.provider.Sun
security.provider.2=com.sun.net.ssl.internal.ssl.Provider
security.provider.3=com.sun.rsajca.Provider
security.provider.4=com.sun.crypto.provider.SunJCE
security.provider.5=sun.security.jgss.SunProvider
配置
也许你在大多数环境下不会有问题,但是在websphere里面也许就出问题了?因为WEBSPHERE有自己的安全实现.
用第三方的软件包吧. 2 楼 chhj_292 2008-12-17 加密單個漢字字符出現問題!!!
把“杭”字加密,解密之后效果如下:
加密:urw=
解密:杭 3 楼 gembler 2008-12-17 chhj_292 写道加密單個漢字字符出現問題!!!
把“杭”字加密,解密之后效果如下:
加密:urw=
解密:杭
有什么问题呢?