找到11913个回复
  • java大佬帮忙翻译成go或者php或者js代码
    112522点击 / 2023-01-07发布 / 2023-01-10回复 / /

    @老虎会游泳

    经过我的测试,是的,应该是我本地编码的问题,我使用JDK11运行时控制台打印的乱码,输出的结果也不正确,我昨天就是这样测试的,只不过当时忽略了乱码的事情,毕竟这种现象司空见惯了。

    刚刚我使用了JDK19再次进行测试,发现控制台打印已经正常了,输出的结果也变得正常。

    QQ截图20230110155140.png(58.09 KB)

    现在的问题变成了为什么会这样...
    红米K30 Pro(变焦版)

  • 继续PHP:

    图片.png(96.3 KB)

    这个回答其实很不错,我没告诉它要修复trim,它也修复了。

    图片.png(71.62 KB)

    图片.png(126.09 KB)

    图片.png(99.02 KB)

    最后它真的修好了,结果完全正确。

    <?php
    
    echo "FinalShell-Keygen v1.0 - Developed by UltraPanda\n* Only for educational purpose *\n请输入离线激活所提供的机器码: ";
    $hardwareId = trim(fgets(STDIN));
    echo "高级版激活码: " . transform("\u{ef79}" . $hardwareId . "8552") . "\n";
    echo "专业版激活码: " . transform("2356" . $hardwareId . "13593") . "\n";
    
    function transform($str) {
        return substr(hashMD5($str), 8, 16);
    }
    
    function hashMD5($str) {
        return md5($str);
    }
    
  • 至于golang,在经我两次提醒之后,ChatGPT给出了完全正确的结果:

    图片.png(112.53 KB)图片.png(82.29 KB)图片.png(55.37 KB)图片.png(79.59 KB)

    package main
    
    import (
        "bufio"
        "fmt"
        "crypto/md5"
        "os"
        "strings"
    )
    
    func main() {
        reader := bufio.NewReader(os.Stdin)
        fmt.Println("FinalShell-Keygen v1.0 - Developed by UltraPanda\n* Only for educational purpose *\n请输入离线激活所提供的机器码: ")
        hardwareId, _ := reader.ReadString('\n')
        hardwareId = strings.TrimSpace(hardwareId)
        fmt.Printf("高级版激活码: %s\n专业版激活码: %s\n", transform("\U0000ef79" + hardwareId + "8552"), transform("2356" + hardwareId + "13593"))
    }
    
    func transform(str string) string {
        return hashMD5(str)[8:24]
    }
    
    func hashMD5(str string) string {
        hashed := md5.Sum([]byte(str))
        sb := ""
        for _, b := range hashed {
            len := int(b) & 255
            if len < 16 {
                sb += "0"
            }
            sb += fmt.Sprintf("%x", len)
        }
        return sb
    }
    
  • 只是可惜它给的结果是错误的,与java版结果并不一致。旧人的那个回答结果也不正确(还是语法错误:hashMD5($str).substr(8, 16))。

    图片.png(34.08 KB)

    不过我的回答犯的三个错误都比较容易修复:

    1. PHP不支持\u转义,需要使用特殊字符本身,或者其他方式表达。
    2. 误解了substr的参数含义(第二个参数应该是长度而不是位置,所以是 24-8=16)。
    3. fgets获取的字符串有换行,需要trim。

    图片.png(109.45 KB)

  • @Curtion,你的答案结果不正确,要把?换成(那个特殊字符本身)结果才和Java版一致。
    如果在Windows上结果不同,说明Windows操作系统编码转换对字符串造成了影响,可以尝试打开“Beta版: 使用 unicode UTF-8 提供全球语言支持”选项以得到和Linux一致的结果(打开该选项会导致在界面上使用GBK的软件乱码)。

    图片.png(85.19 KB)

  • 不过它还能做这种操作,方便我测试了:
    图片.png(39.78 KB)
    图片.png(64.6 KB)

    加上 import 后代码应该长这样:

    import java.util.Scanner;
    import java.security.MessageDigest;
    import java.security.NoSuchAlgorithmException;
    
    public class Main {
    
        public static void main(String[] args) throws NoSuchAlgorithmException {
            Scanner scanner = new Scanner(System.in);
            System.out.println("FinalShell-Keygen v1.0 - Developed by UltraPanda\n* Only for educational purpose *\n请输入离线激活所提供的机器码: ");
            String hardwareId = scanner.nextLine();
            System.out.printf("高级版激活码: %s\n专业版激活码: %s%n", transform('\uef79' + hardwareId + 8552), transform(2356 + hardwareId + 13593));
        }
    
        public static String transform(String str) throws NoSuchAlgorithmException {
            return hashMD5(str).substring(8, 24);
        }
    
        public static String hashMD5(String str) throws NoSuchAlgorithmException {
            MessageDigest digest = MessageDigest.getInstance("MD5");
            byte[] hashed = digest.digest(str.getBytes());
            StringBuilder sb = new StringBuilder();
            byte[] var4 = hashed;
            int var5 = hashed.length;
    
            for(int var6 = 0; var6 < var5; ++var6) {
                byte b = var4[var6];
                int len = b & 255;
                if (len < 16) {
                    sb.append("0");
                }
    
                sb.append(Integer.toHexString(len));
            }
    
            return sb.toString();
        }
    }
    
  • ChatGPT给出的结果确实很惊艳:

    图片.png(121.19 KB)

    而且不清楚它是不是知道我喜欢php-cli,所以给了我cli版的代码。

    <?php
    
    function transform($str) {
      return substr(hashMD5($str), 8, 24);
    }
    
    function hashMD5($str) {
      return hash("md5", $str);
    }
    
    echo "FinalShell-Keygen v1.0 - Developed by UltraPanda\n* Only for educational purpose *\n请输入离线激活所提供的机器码: ";
    $handle = fopen ("php://stdin","r");
    $hardwareId = fgets($handle);
    echo "高级版激活码: " . transform("\uef79" . $hardwareId . 8552) . "\n";
    echo "专业版激活码: " . transform(2356 . $hardwareId . 13593) . "\n";
    
    ?>
    
  • 【楼主删除了该帖】
    4933点击 / 2023-01-07发布 / 2023-01-10回复 / /

    还是Linux好,文件管理器自带SFTP功能,终端也开箱即用。

  • 【楼主删除了该帖】
    4933点击 / 2023-01-07发布 / 2023-01-10回复 / /

    @消失的彩虹海,有后门吗

  • @罐子,留着吧,既然存在,有其道理,一个是电信怕客户乱搞,另一个是他们可能有些申请故障报修操作需要远程登录用到动态密码
  • @胡图图,你说的这个我懂(以前经常这么干),往后再说,等我资历再老一点先,我可能就会这么做
  • @TabKey9,动态密码。。可以删除他的动态密码控制线路的
    一加8Pro

  • @TabKey9,把0段提供ip的功能关掉,切换成ap模式不行吗?
  • @胡图图,全部变成1段不太好,光猫的wifi能力不够强,而且还隔着茶水间1~2道墙,以及网线口不够用等,挺多问题的
  • @胡图图,一言难尽啊,这是两台具备ip分发的设备,光猫距离太远,信号差,主机网线基本上都是从光猫接交换机分出来的,新款笔记本电脑基本上不带网线口!用上wifi不就成2个网段了嘛!
  • 比如把0段全部的设备全部切换到1段,这样就都是同一个段了
  • @TabKey9,那为什么不尝试合并网段呢?
  • @读书顶个鸟用@胡图图,电信的光猫(企业版A8光猫)静态路由也试过了,电信师傅们不会,我也不会,忘记截图给你们看了,刚才发现超级管理员密码已经变更(动态的),普通管理员账户只能看到7楼的截图,超级管理员能看到其他包括静态路由的设置项
  • 捕获.PNG(43.03 KB)
    搞了个半成品,单通(0段可以ping通1段),放弃了,先是把电信维修师傅请来,他也不会,然后我自己搞,还是不行。

    弄这个主要是因为我0段连不上公司内网的1段的MySQL服务器,搞了个半成品已经可以连上MySQL了,但只是单通,跟前端配合开发的时候,他的VSCode连不是我的IDEA(当我们俩不在同一个网段的情况下);

    为了解决这个问题,我们自能商量好,要么一起连0段(WiFi),要么一起连1段(网线)。
    @读书顶个鸟用@5258@胡图图
  • java大佬帮忙翻译成go或者php或者js代码
    112522点击 / 2023-01-07发布 / 2023-01-09回复 / /
    <!DOCTYPE html>
    <html>
    <head>
      <title>FinalShell Keygen</title>
    </head>
    <body>
      <h1>FinalShell-Keygen v1.0 - Developed by UltraPanda</h1>
      <p>* Only for educational purpose *</p>
      <?php
      if (isset($_POST['hardwareId'])) {
        $hardwareId = $_POST['hardwareId'];
        $advancedCode = transform('\uef79' . $hardwareId . 8552);
        $professionalCode = transform(2356 . $hardwareId . 13593);
      ?>
        <p>高级版激活码: <?php echo $advancedCode ?></p>
        <p>专业版激活码: <?php echo $professionalCode ?></p>
      <?php
      } else {
      ?>
        <p>请输入离线激活所提供的机器码:</p>
        <form action="" method="post">
          <input name="hardwareId" type="text" />
          <input type="submit" value="生成激活码" />
        </form>
      <?php
      }
      ?>
    </body>
    </html>
    
    <?php
    function transform($str) {
      return hashMD5($str).substr(8, 16);
    }
    
    function hashMD5($str) {
      return md5($str);
    }
    ?>
    
    
    

    chatgpt给出的PHP版本