首页 > 系统相关 >FinalShell密码解密

FinalShell密码解密

时间:2023-10-30 11:25:42浏览次数:36  
标签:head 解密 long 密码 length FinalShell new byte data

public static byte[] desDecode(byte[] data, byte[] head) throws Exception {
        SecureRandom sr = new SecureRandom();
        DESKeySpec dks = new DESKeySpec(head);
        SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
        SecretKey securekey = keyFactory.generateSecret(dks);
        Cipher cipher = Cipher.getInstance("DES");
        cipher.init(2, securekey, sr);
        return cipher.doFinal(data);
    }

    public static String decodePass(String data) throws Exception {
        if (data == null) {
            return null;
        } else {
            String rs = "";
            byte[] buf = Base64.getDecoder().decode(data);
            byte[] head = new byte[8];
            System.arraycopy(buf, 0, head, 0, head.length);
            byte[] d = new byte[buf.length - head.length];
            System.arraycopy(buf, head.length, d, 0, d.length);
            byte[] bt = desDecode(d, ranDomKey(head));
            rs = new String(bt);

            return rs;
        }
    }

    static byte[] ranDomKey(byte[] head) {
        long ks = 3680984568597093857L / (long) (new Random((long) head[5])).nextInt(127);
        Random random = new Random(ks);
        int t = head[0];

        for (int i = 0; i < t; ++i) {
            random.nextLong();
        }

        long n = random.nextLong();
        Random r2 = new Random(n);
        long[] ld = new long[]{(long) head[4], r2.nextLong(), (long) head[7], (long) head[3], r2.nextLong(), (long) head[1], random.nextLong(), (long) head[2]};
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        DataOutputStream dos = new DataOutputStream(bos);
        long[] var15 = ld;
        int var14 = ld.length;

        for (int var13 = 0; var13 < var14; ++var13) {
            long l = var15[var13];

            try {
                dos.writeLong(l);
            } catch (IOException var18) {
                var18.printStackTrace();
            }
        }

        try {
            dos.close();
        } catch (IOException var17) {
            var17.printStackTrace();
        }

        byte[] keyData = bos.toByteArray();
        keyData = md5(keyData);
        return keyData;
    }

    public static byte[] md5(byte[] data) {
        String ret = null;
        byte[] res = null;

        try {
            MessageDigest m;
            m = MessageDigest.getInstance("MD5");
            m.update(data, 0, data.length);
            res = m.digest();
            ret = new BigInteger(1, res).toString(16);
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
        return res;
    }

 

标签:head,解密,long,密码,length,FinalShell,new,byte,data
From: https://www.cnblogs.com/junjun1578/p/17797319.html

相关文章

  • wifi密码
    如果无法下载或者不方便下载请加微:pjwifi2024请打开链接进行下载:https://pan.baidu.com/s/1-w2GgTLGy6FVU18svIbp0g?pwd=1234如果无法下载或者不方便下载请加微:pjwifi2024建议您务必添加技术好友,按照技术指导操作:技术微:pjwifi2024或者可以直接用微扫描下面二维码添加:......
  • finalshell在sbt安装目录中使用下面命令创建一个Shell脚本文件,用于启动sbt:
    finalshell在sbt安装目录中使用下面命令创建一个Shell脚本文件,用于启动sbt:vim/usr/local/sbt/sbtlanguage-bash该脚本文件中的代码如下:#!/bin/bashSBT_OPTS="-Xms512M-Xmx1536M-Xss1M-XX:+CMSClassUnloadingEnabled-XX:MaxPermSize=256M"java$SBT_OPTS-jardirname$......
  • Jenkins忘记管理员密码
    一、删除Jenkins配置文件config.xml的如下内容重启Jenkins后发现不用密码可以直接登录二、启用安全域系统管理全局安全配置选择Jenkins专有用户数据库并保存三、设置admin密码系统管理→管理用户设置新的密码并保存退出后就可以用新密码登录了—————————......
  • Python:控制台输入密码passwod的方法
    目录inputgetpasstermiosmsvcrtinputprint(input("pleaseinput:"))$python3demo.pypleaseinput:123456123456缺点:不安全getpassimportgetpassprint(getpass.getpass("pleaseinput:"))$python3demo.pypleaseinput:123456缺点:看不到输入的位数termi......
  • 收藏从未停止,练习从未开始——MYSQL游标存储过程IDEA快捷键配置SpringBoot入门到入土G
    “收藏从未停止,练习从未开始”,或许有那么一些好题好方法,在被你选中收藏后却遗忘在收藏夹里积起了灰?今天请务必打开你沉甸甸的收藏重新回顾,分享一下那些曾让你拍案叫绝的好东西吧!本人详解:(提醒:随笔)本人详解作者:王文峰,参加过2020年度博客之星,《Java王大师王天师》作者采购供应链共享......
  • 20.2 OpenSSL 非对称RSA加解密算法
    RSA算法是一种非对称加密算法,由三位数学家Rivest、Shamir和Adleman共同发明,以他们三人的名字首字母命名。RSA算法的安全性基于大数分解问题,即对于一个非常大的合数,将其分解为两个质数的乘积是非常困难的。RSA算法是一种常用的非对称加密算法,与对称加密算法不同,RSA算法使用一对非对......
  • 20.2 OpenSSL 非对称RSA加解密算法
    RSA算法是一种非对称加密算法,由三位数学家Rivest、Shamir和Adleman共同发明,以他们三人的名字首字母命名。RSA算法的安全性基于大数分解问题,即对于一个非常大的合数,将其分解为两个质数的乘积是非常困难的。RSA算法是一种常用的非对称加密算法,与对称加密算法不同,RSA算法使用一对非......
  • JS加密/解密之逻辑运算符加密进阶篇
    前言 前篇给大家介绍了运算符不为人知的基础知识。他们的各种表达形式,今天我们从这个基础上,继续进一步告诉大家,如何对字符串进行加密处理。还是那句话,技术人不废话,直接晒代码。示例源代码//字符串加密示例letstr="HelloWorld";//加密letencryptedString=[[]+[]+......
  • 商用密码产品 20211314王艺达
    一.28类商用密码产品序号产品种类产品描述认证依据1智能密码钥匙实现密码运算、密钥管理功能的终端密码设备,一般使用USB接口形态。GM/T0027《智能密码钥匙技术规范》、GM/T0028《密码模块安全技术要求》2智能IC卡实现密码运算和密钥管理功能的含CPU(中央处理器)的集......
  • 2023-2024-1 20211306 密码系统设计与实现课程学习笔记7
    20211306密码系统设计与实现课程学习笔记7任务详情自学教材第4章,提交学习笔记知识点归纳以及自己最有收获的内容,选择至少2个知识点利用chatgpt等工具进行苏格拉底挑战,并提交过程截图,提示过程参考下面内容“我在学***X知识点,请你以苏格拉底的方式对我进行提问,一次一个问题......