@森森,不弄了,弄不好恢复的时候,发现丢包很严重,丢包率50左右
让电信师傅设置一下路由拨号模式,弄路由器拨号
@hui214,谢谢,有时间我试试
@消失的彩虹海,哦那就是有后门了, 我刚买了 finalShell 一个java写的GUI感觉用起来还不错就是有点卡
@TabKey9,可以下载个zerotier内网穿透一下,改一下路由表,内网地址也不用变。![]()
好久没看到php写CLI了 小米MIX2s(白)
@TabKey9,那这样的话,你也不用想这个问题了,让该解决这个问题的人去解决
@胡椒舰长,没有。不过我还是习惯用winscp+putty
@chuyi,virt-manager,可以从软件源安装。
da lao neng fen xiang xia xu ni ji ma
@Curtion,嗯确实,相当于我用语言调整了它的参数。
chatgpt小程序员的福音,但是可能会让某些公司变相增加普通程序员工作量,因为程序员完成小需求效率变高了
经过我的测试,是的,应该是我本地编码的问题,我使用JDK11运行时控制台打印的乱码,输出的结果也不正确,我昨天就是这样测试的,只不过当时忽略了乱码的事情,毕竟这种现象司空见惯了。
刚刚我使用了JDK19再次进行测试,发现控制台打印已经正常了,输出的结果也变得正常。
现在的问题变成了为什么会这样...
红米K30 Pro(变焦版)
继续PHP:
这个回答其实很不错,我没告诉它要修复trim,它也修复了。
最后它真的修好了,结果完全正确。
<?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给出了完全正确的结果:
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)
)。
不过我的回答犯的三个错误都比较容易修复:
- PHP不支持
\u
转义,需要使用特殊字符本身,或者其他方式表达。- 误解了substr的参数含义(第二个参数应该是长度而不是位置,所以是 24-8=16)。
- fgets获取的字符串有换行,需要trim。
@Curtion,你的答案结果不正确,要把
?
换成
(那个特殊字符本身)结果才和Java版一致。
如果在Windows上结果不同,说明Windows操作系统编码转换对字符串造成了影响,可以尝试打开“Beta版: 使用 unicode UTF-8 提供全球语言支持”选项以得到和Linux一致的结果(打开该选项会导致在界面上使用GBK的软件乱码)。
不过它还能做这种操作,方便我测试了:
加上 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给出的结果确实很惊艳:
而且不清楚它是不是知道我喜欢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"; ?>