H5网站开发工程师,软件 行业门户网站,wordpress网站弹窗插件,网站建设公司 专题制作展开全部你那个代码少得东西太多#xff0c;我左试右试#xff0c;都是错#xff0c;也不知道你的初始32313133353236313431303231363533e78988e69d8331333332613762值都是什么。给你写了一个加密解密的#xff0c;希望对你有帮助。import java.security.NoSuchAlgorithmEx…展开全部你那个代码少得东西太多我左试右试都是错也不知道你的初始32313133353236313431303231363533e78988e69d8331333332613762值都是什么。给你写了一个加密解密的希望对你有帮助。import java.security.NoSuchAlgorithmException;import java.security.SecureRandom;import javax.crypto.Cipher;import javax.crypto.KeyGenerator;import javax.crypto.SecretKey;public class Test {/*** 创建密匙*/public SecretKey createSecretKey(String algorithm) {// 声明KeyGenerator对象KeyGenerator keygen;// 声明 密钥对象SecretKey deskey null;try {// 返回生成指定算法的秘密密钥的 KeyGenerator 对象keygen KeyGenerator.getInstance(algorithm);// 生成一个密钥deskey keygen.generateKey();} catch (NoSuchAlgorithmException e) {e.printStackTrace();}// 返回密匙return deskey;}/*** 根据密匙进行DES加密*/public String encryptToDES(SecretKey key, String info) {// 定义 加密算法,可用 DES,DESede,BlowfishString Algorithm DES;// 加密随机数生成器 (RNG),(可以不写)SecureRandom sr new SecureRandom();// 定义要生成的密文byte[] cipherByte null;try {// 得到加密/解密器Cipher c1 Cipher.getInstance(Algorithm);// 用指定的密钥和模式初始化Cipher对象// 参数:(ENCRYPT_MODE, DECRYPT_MODE, WRAP_MODE,UNWRAP_MODE)c1.init(Cipher.ENCRYPT_MODE, key, sr);// 对要加密的内容进行编码处理,cipherByte c1.doFinal(info.getBytes());} catch (Exception e) {e.printStackTrace();}// 返回密文的十六进制形式return byte2hex(cipherByte);}/*** 根据密匙进行DES解密*/public String decryptByDES(SecretKey key, String sInfo) {// 定义 加密算法,String Algorithm DES;// 加密随机数生成器 (RNG)SecureRandom sr new SecureRandom();byte[] cipherByte null;try {// 得到加密/解密器Cipher c1 Cipher.getInstance(Algorithm);// 用指定的密钥和模式初始化Cipher对象c1.init(Cipher.DECRYPT_MODE, key, sr);// 对要解密的内容进行编码处理cipherByte c1.doFinal(hex2byte(sInfo));} catch (Exception e) {e.printStackTrace();}// return byte2hex(cipherByte);return new String(cipherByte);}/*** 将二进制转化为16进制字符串*/public String byte2hex(byte[] b) {String hs ;String stmp ;for (int n 0; n b.length; n) {stmp (java.lang.Integer.toHexString(b[n] 0XFF));if (stmp.length() 1) {hs hs 0 stmp;} else {hs hs stmp;}}return hs.toUpperCase();}/*** 十六进制字符串转化为2进制*/public byte[] hex2byte(String hex) {byte[] ret new byte[8];byte[] tmp hex.getBytes();for (int i 0; i 8; i) {ret[i] uniteBytes(tmp[i * 2], tmp[i * 2 1]);}return ret;}public static byte uniteBytes(byte src0, byte src1) {byte _b0 Byte.decode(0x new String(new byte[] { src0 })).byteValue();_b0 (byte) (_b0 4);byte _b1 Byte.decode(0x new String(new byte[] { src1 })).byteValue();byte ret (byte) (_b0 ^ _b1);return ret;}public static void main(String[] args) {Test jiami new Test();// 生成一个DES算法的密匙SecretKey key jiami.createSecretKey(DES);// 用密匙加密信息Hello world!String str1 jiami.encryptToDES(key, Hello);System.out.println(使用des加密信息Hello为: str1);// 使用这个密匙解密String str2 jiami.decryptByDES(key, str1);System.out.println(解密后为 str2);}}