java 用BASE64 进行加密 解密
来源:互联网 发布:tiled linux 编辑:程序博客网 时间:2024/05/01 18:48
import javax.crypto.Cipher;import javax.crypto.SecretKey;import javax.crypto.SecretKeyFactory;import javax.crypto.spec.DESKeySpec;import sun.misc.BASE64Decoder;import sun.misc.BASE64Encoder;public class Crypt {// --------------------------------------------------------------------------------------------// 获得密钥public SecretKey getKey(String s) throws Exception {System.out.println("s==" + s);char[] ss = s.toCharArray();String sss = "";for (int i = 0; i < ss.length; i = i + 2) {sss = sss + ss[i];}SecretKeyFactory kf = SecretKeyFactory.getInstance("DES");DESKeySpec ks = new DESKeySpec(sss.substring(0, 8).getBytes());SecretKey kd = kf.generateSecret(ks);return kd;}// --------------------------------------------------------------------------------------------------// 返回加密后的字符串// key是用于生成密钥的字符串,input是要加密的字符串public String getEncryptedString(String key, String input) {String base64 = "";try {Cipher cipher = Cipher.getInstance("DES/ECB/PKCS5Padding");cipher.init(Cipher.ENCRYPT_MODE, getKey(key));System.out.println("getKey(key)===" + getKey(key) + "key==" + key);byte[] inputBytes = input.getBytes("UTF8");byte[] outputBytes = cipher.doFinal(inputBytes);BASE64Encoder encoder = new BASE64Encoder();base64 = encoder.encode(outputBytes);} catch (Exception e) {base64 = e.getMessage();}return base64;}// --------------------------------------------------------------------------------------------------// 返回解密后的字符串// key是用于生成密钥的字符串,input是要解密的字符串public String getDecryptedString(String key, String input) {String result = null;try {Cipher cipher = Cipher.getInstance("DES/ECB/PKCS5Padding");cipher.init(Cipher.DECRYPT_MODE, getKey(key));BASE64Decoder decoder = new BASE64Decoder();byte[] raw = decoder.decodeBuffer(input);byte[] stringBytes = cipher.doFinal(raw);result = new String(stringBytes, "UTF8");} catch (Exception e) {result = e.getMessage();}return result;}public static void main(String[] args) {Crypt mycrypt = new Crypt();try {// SecretKey skey = mycrypt.getKey("g8TlgLEc6oqZxdwGe6pDiKB8Y");String ss = mycrypt.getEncryptedString("6678912345678906","asdfeeEEEE1231");System.out.println("ss==" + ss);String ss2 = mycrypt.getDecryptedString("6678912345678906", ss);System.out.println("ss2==" + ss2);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}}
0 0
- java 用BASE64 进行加密 解密
- jquery对中文进行base64加密,后台用java进行base64解密
- Java BASE64加密解密
- Java BASE64加密解密
- Java Base64 加密解密
- Java BASE64加密解密
- Java BASE64加密解密
- Java Base64加密解密
- Java BASE64加密解密
- Java BASE64加密解密
- Java BASE64加密解密
- Java加密解密算法-Base64加密解密
- 使用Java Base64解密算对openssl的base64加密字符串进行解密
- Java版本base64加密解密
- JAVA 使用BASE64加密、解密
- JAVA 使用BASE64加密、解密
- Java Base64加密、解密原理
- JAVA加密解密之Base64
- String.format 方法介绍
- js验证身份证号
- 《ASP.NET SignalR系列》第一课 认识SignalR
- STM8_GPIO 外部中断输入
- codeblocks 无法断点调试
- java 用BASE64 进行加密 解密
- java解析xml字符串(用dom4j) (转载)
- sagem 文档学习
- 用eos做无线级级联菜单
- PLSQL Developer 连接 64位 Oracle数据库
- dom4j读写xml文件示例(EOS)
- 设置关闭网页时的确认效果
- 点击Android Virtual Device Manager没有反应
- Android开发中,调用removeView报NullpointerException错