吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1105|回复: 5
上一主题 下一主题
收起左侧

[Java 原创] java仿MD5格式的DES加解密源码

[复制链接]
跳转到指定楼层
楼主
咬字分开念 发表于 2023-10-4 11:01 回帖奖励


[Java] 纯文本查看 复制代码
desen("52pojie","88888888");
//output: 7A619ACF6A730058
desout("7A619ACF6A730058","88888888");
//output: 52pojie

[Java] 纯文本查看 复制代码
import javax.crypto.Cipher;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESKeySpec;
import javax.crypto.spec.IvParameterSpec;
  public static String desen(String CDKEY, String sKey)   {
       
        try {
            DESKeySpec desKeySpec = new DESKeySpec(sKey.getBytes(StandardCharsets.UTF_8));
            SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
            byte[] keyBytes = keyFactory.generateSecret(desKeySpec).getEncoded();
            IvParameterSpec iv = new IvParameterSpec(keyBytes);

            Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding");
            cipher.init(Cipher.ENCRYPT_MODE, keyFactory.generateSecret(desKeySpec), iv);

            byte[] encryptedBytes = cipher.doFinal(CDKEY.getBytes(StandardCharsets.UTF_8));
            StringBuilder stringBuilder = new StringBuilder();
            for (byte b : encryptedBytes) {
                stringBuilder.append(String.format("%02X", b));
            }
            return stringBuilder.toString();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;

    }
    public static String desout(String CDKEY, String sKey) {
      
        try {

            byte[] keyBytes = sKey.getBytes(StandardCharsets.US_ASCII);
            byte[] ivBytes = sKey.getBytes(StandardCharsets.US_ASCII);
            DESKeySpec desKeySpec = new DESKeySpec(keyBytes);
            SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
            IvParameterSpec ivSpec = new IvParameterSpec(ivBytes);

            Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding");
            cipher.init(Cipher.DECRYPT_MODE, keyFactory.generateSecret(desKeySpec), ivSpec);

            byte[] encryptedBytes = new byte[CDKEY.length() / 2];
            for (int i = 0; i < CDKEY.length() / 2; i++) {
                int num = Integer.parseInt(CDKEY.substring(i * 2, i * 2 + 2), 16);
                encryptedBytes[i] = (byte) num;
            }

            ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
            outputStream.write(cipher.doFinal(encryptedBytes));

            return new String(outputStream.toByteArray(), StandardCharsets.UTF_8);
        } catch (Exception e) {
            return CDKEY;
        }
    }

免费评分

参与人数 1吾爱币 +5 热心值 +1 收起 理由
苏紫方璇 + 5 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

沙发
wu731kk 发表于 2023-10-8 16:17
不错~不错~
3#
prince小君 发表于 2023-10-29 20:39
4#
youzijun 发表于 2023-10-30 17:52
5#
XCoder 发表于 2023-10-31 07:33
Mark一下,支持
6#
Jessema 发表于 2023-11-3 16:23
好东西,收藏了。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-14 08:43

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表