рассмотрим, например, этот код:
Код: Выделить всё
public class Test2 {
public boolean isSerialKeyValid(String serial) {
if (!serial.toLowerCase().startsWith("@v3")) {
return isV1V2SerialValid(serial);
}
return isV3SerialValid(serial);
}
private boolean isV1V2SerialValid(String serial) {
if (serial.toLowerCase().startsWith("@v1")) {
String serialValue = serial.split("@v1")[1];
return isV1ChecksumValid(serialValue);
}
String serialValue = serial.split("@v2")[1];
return isV2ChecksumValid(serialValue);
}
private boolean isV1ChecksumValid(String v1Serial) {
if (!v1Serial.matches("\\d+")) {
return false;
}
String[] items = v1Serial.split("\\d");
int sum = 0;
for (String item : items) {
sum += Integer.parseInt(item);
}
return sum % 13 == 0;
}
private boolean isV2ChecksumValid(String v2Serial) {
String trimmedSerial = v2Serial.trim();
if (trimmedSerial.length() != 8) {
return false;
}
return trimmedSerial.matches("[^A-Za-z]+\\w{3}[^A-Za-z]+");
}
private boolean isV3SerialValid(String v3Serial) {
String serialValue = v3Serial.split("@v3")[1];
return isV3ChecksumValid(serialValue);
}
private boolean isV3ChecksumValid(String v3Serial) {
return v3Serial.length() == 10 && v3Serial.matches(".*@!=.*");
}
}
public class SampleTestSuit {
public static void main(String[] args) {
System.out.println(validatedSerialKey("@v2123ali34"));
}
public static boolean validatedSerialKey (String str) {
if (str.startsWith("@v1") || str.startsWith("@v2") || str.startsWith("@v1")) {
Test2 test2 = new Test2();
return test2.isSerialKeyValid(str);
}
return false;
}
}
Код: Выделить всё
{
methodName: TestSuit2.Test2#isSerialKeyValid,
parametersValue:[
{
paramName: serial,
paramValue: "@v2123ali34"
}
]
},
{
methodName: TestSuit2.Test2#isV1V2SerialValid,
parametersValue:[
{
paramName: serial,
paramValue: "@v2123ali34"
}
]
},
{
methodName: Java.Lang.String#toLowerCase,
parametersValue:[
{
paramName: ?,
paramValue: "@v2123ali34"
}
],
},
Должен ли я использовать такую библиотеку, как byte Buddy или ASM? Моя целевая версия JDK — 8.
Спасибо
Подробнее здесь: https://stackoverflow.com/questions/782 ... byte-buddy