日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

        歡迎訪問 生活随笔!

        生活随笔

        當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

        编程问答

        c 加密 java解密错误_java解密出错

        發布時間:2023/11/30 编程问答 29 豆豆
        生活随笔 收集整理的這篇文章主要介紹了 c 加密 java解密错误_java解密出错 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

        展開全部

        你那個代碼少得東西太多,我左試右試,都是錯,也不知道你的初始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,Blowfish

        String 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);

        }

        }

        創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

        總結

        以上是生活随笔為你收集整理的c 加密 java解密错误_java解密出错的全部內容,希望文章能夠幫你解決所遇到的問題。

        如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。