Last active
July 9, 2023 10:49
-
-
Save waylife/b4d3e24b1ac0fe75e6f6e2bc4aa7e715 to your computer and use it in GitHub Desktop.
HG261GSDecoder for FiberHome HG261
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class HG261GSDecoder { | |
public static void main(String[] args) { | |
System.out.println("HG261GSDecoder v0.0.1(20160914) By RxRead"); | |
System.out.println("http://blog.zanlabs.com"); | |
// baseinfoSet_USERPASSWORD | |
String cipherText = "66&85&55&102&79&"; | |
System.out.println(String.format("ciphertext=%s\ndecoder text=%s", cipherText, getPassword(cipherText))); | |
// http://192.168.1.1/cgi-bin/baseinfoSet.cgi,baseinfoSet_TELECOMPASSWORD | |
String cipherText2 = "120&105&112&105&103&115&113&101&104&113&109&114&57&56&50&49&49&54&50&49&"; | |
System.out.println(String.format("ciphertext=%s\ndecoder text=%s", cipherText2, getPassword(cipherText2))); | |
} | |
public static String getPassword(String cipherText) { | |
if (cipherText == null || cipherText.length() == 0) { | |
return ""; | |
} | |
if (cipherText.charAt(cipherText.length() - 1) == '&') { | |
cipherText = cipherText.substring(0, cipherText.length() - 1); | |
} | |
String[] orgArr = cipherText.split("&"); | |
StringBuffer sb = new StringBuffer(); | |
int count = 0; | |
for (String str : orgArr) { | |
int intValue = Integer.parseInt(str); | |
if (intValue >= 48 && intValue <= 57) { | |
intValue = intValue; | |
} else { | |
intValue -= 4; | |
} | |
String value = new String(new byte[] { (byte) (intValue) }); | |
sb.append(new String(value)); | |
count++; | |
} | |
return sb.toString(); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
备注,烽火路由器 后台密码规则(加密版)
非加密版规则https://www.douban.com/note/517148856/