public class org.apache.commons.codec.digest.Sha2Crypt
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.commons.codec.digest.Sha2Crypt
super_class: java.lang.Object
{
private static final int ROUNDS_DEFAULT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 5000
private static final int ROUNDS_MAX;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 999999999
private static final int ROUNDS_MIN;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1000
private static final java.lang.String ROUNDS_PREFIX;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "rounds="
private static final int SHA256_BLOCKSIZE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 32
static final java.lang.String SHA256_PREFIX;
descriptor: Ljava/lang/String;
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: "$5$"
private static final int SHA512_BLOCKSIZE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 64
static final java.lang.String SHA512_PREFIX;
descriptor: Ljava/lang/String;
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: "$6$"
private static final java.util.regex.Pattern SALT_PATTERN;
descriptor: Ljava/util/regex/Pattern;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc "^\\$([56])\\$(rounds=(\\d+)\\$)?([\\.\\/a-zA-Z0-9]{1,16}).*"
invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
1: putstatic org.apache.commons.codec.digest.Sha2Crypt.SALT_PATTERN:Ljava/util/regex/Pattern;
2: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/commons/codec/digest/Sha2Crypt;
public static java.lang.String sha256Crypt(byte[]);
descriptor: ([B)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aconst_null
invokestatic org.apache.commons.codec.digest.Sha2Crypt.sha256Crypt:([BLjava/lang/String;)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 keyBytes [B
MethodParameters:
Name Flags
keyBytes final
public static java.lang.String sha256Crypt(byte[], java.lang.String);
descriptor: ([BLjava/lang/String;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: new java.lang.StringBuilder
dup
ldc "$5$"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
bipush 8
invokestatic org.apache.commons.codec.digest.B64.getRandomSalt:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 1
2: StackMap locals:
StackMap stack:
aload 0
aload 1
ldc "$5$"
bipush 32
ldc "SHA-256"
invokestatic org.apache.commons.codec.digest.Sha2Crypt.sha2Crypt:([BLjava/lang/String;Ljava/lang/String;ILjava/lang/String;)Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 keyBytes [B
0 3 1 salt Ljava/lang/String;
MethodParameters:
Name Flags
keyBytes final
salt
public static java.lang.String sha256Crypt(byte[], java.lang.String, java.util.Random);
descriptor: ([BLjava/lang/String;Ljava/util/Random;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ifnonnull 2
1: new java.lang.StringBuilder
dup
ldc "$5$"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
bipush 8
aload 2
invokestatic org.apache.commons.codec.digest.B64.getRandomSalt:(ILjava/util/Random;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 1
2: StackMap locals:
StackMap stack:
aload 0
aload 1
ldc "$5$"
bipush 32
ldc "SHA-256"
invokestatic org.apache.commons.codec.digest.Sha2Crypt.sha2Crypt:([BLjava/lang/String;Ljava/lang/String;ILjava/lang/String;)Ljava/lang/String;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 keyBytes [B
0 3 1 salt Ljava/lang/String;
0 3 2 random Ljava/util/Random;
MethodParameters:
Name Flags
keyBytes final
salt
random
private static java.lang.String sha2Crypt(byte[], java.lang.String, java.lang.String, int, java.lang.String);
descriptor: ([BLjava/lang/String;Ljava/lang/String;ILjava/lang/String;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=21, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
arraylength
istore 5
start local 5 1: sipush 5000
istore 6
start local 6 2: iconst_0
istore 7
start local 7 3: aload 1
ifnonnull 5
4: new java.lang.IllegalArgumentException
dup
ldc "Salt must not be null"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals: int int int
StackMap stack:
getstatic org.apache.commons.codec.digest.Sha2Crypt.SALT_PATTERN:Ljava/util/regex/Pattern;
aload 1
invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
astore 8
start local 8 6: aload 8
invokevirtual java.util.regex.Matcher.find:()Z
ifne 8
7: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Invalid salt value: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals: java.util.regex.Matcher
StackMap stack:
aload 8
iconst_3
invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
ifnull 12
9: aload 8
iconst_3
invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
istore 6
10: sipush 1000
ldc 999999999
iload 6
invokestatic java.lang.Math.min:(II)I
invokestatic java.lang.Math.max:(II)I
istore 6
11: iconst_1
istore 7
12: StackMap locals:
StackMap stack:
aload 8
iconst_4
invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
astore 9
start local 9 13: aload 9
getstatic org.apache.commons.codec.Charsets.UTF_8:Ljava/nio/charset/Charset;
invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
astore 10
start local 10 14: aload 10
arraylength
istore 11
start local 11 15: aload 4
invokestatic org.apache.commons.codec.digest.DigestUtils.getDigest:(Ljava/lang/String;)Ljava/security/MessageDigest;
astore 12
start local 12 16: aload 12
aload 0
invokevirtual java.security.MessageDigest.update:([B)V
17: aload 12
aload 10
invokevirtual java.security.MessageDigest.update:([B)V
18: aload 4
invokestatic org.apache.commons.codec.digest.DigestUtils.getDigest:(Ljava/lang/String;)Ljava/security/MessageDigest;
astore 13
start local 13 19: aload 13
aload 0
invokevirtual java.security.MessageDigest.update:([B)V
20: aload 13
aload 10
invokevirtual java.security.MessageDigest.update:([B)V
21: aload 13
aload 0
invokevirtual java.security.MessageDigest.update:([B)V
22: aload 13
invokevirtual java.security.MessageDigest.digest:()[B
astore 14
start local 14 23: aload 0
arraylength
istore 15
start local 15 24: goto 27
25: StackMap locals: byte[] java.lang.String java.lang.String int java.lang.String int int int java.util.regex.Matcher java.lang.String byte[] int java.security.MessageDigest java.security.MessageDigest byte[] int
StackMap stack:
aload 12
aload 14
iconst_0
iload 3
invokevirtual java.security.MessageDigest.update:([BII)V
26: iload 15
iload 3
isub
istore 15
27: StackMap locals:
StackMap stack:
iload 15
iload 3
if_icmpgt 25
28: aload 12
aload 14
iconst_0
iload 15
invokevirtual java.security.MessageDigest.update:([BII)V
29: aload 0
arraylength
istore 15
30: goto 36
31: StackMap locals:
StackMap stack:
iload 15
iconst_1
iand
ifeq 34
32: aload 12
aload 14
iconst_0
iload 3
invokevirtual java.security.MessageDigest.update:([BII)V
33: goto 35
34: StackMap locals:
StackMap stack:
aload 12
aload 0
invokevirtual java.security.MessageDigest.update:([B)V
35: StackMap locals:
StackMap stack:
iload 15
iconst_1
ishr
istore 15
36: StackMap locals:
StackMap stack:
iload 15
ifgt 31
37: aload 12
invokevirtual java.security.MessageDigest.digest:()[B
astore 14
38: aload 4
invokestatic org.apache.commons.codec.digest.DigestUtils.getDigest:(Ljava/lang/String;)Ljava/security/MessageDigest;
astore 13
39: iconst_1
istore 16
start local 16 40: goto 43
41: StackMap locals: int
StackMap stack:
aload 13
aload 0
invokevirtual java.security.MessageDigest.update:([B)V
42: iinc 16 1
StackMap locals:
StackMap stack:
43: iload 16
iload 5
if_icmple 41
end local 16 44: aload 13
invokevirtual java.security.MessageDigest.digest:()[B
astore 16
start local 16 45: iload 5
newarray 8
astore 17
start local 17 46: iconst_0
istore 18
start local 18 47: goto 50
48: StackMap locals: byte[] java.lang.String java.lang.String int java.lang.String int int int java.util.regex.Matcher java.lang.String byte[] int java.security.MessageDigest java.security.MessageDigest byte[] int byte[] byte[] int
StackMap stack:
aload 16
iconst_0
aload 17
iload 18
iload 3
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
49: iload 18
iload 3
iadd
istore 18
50: StackMap locals:
StackMap stack:
iload 18
iload 5
iload 3
isub
if_icmplt 48
51: aload 16
iconst_0
aload 17
iload 18
iload 5
iload 18
isub
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
52: aload 4
invokestatic org.apache.commons.codec.digest.DigestUtils.getDigest:(Ljava/lang/String;)Ljava/security/MessageDigest;
astore 13
53: iconst_1
istore 19
start local 19 54: goto 57
55: StackMap locals: int
StackMap stack:
aload 13
aload 10
invokevirtual java.security.MessageDigest.update:([B)V
56: iinc 19 1
StackMap locals:
StackMap stack:
57: iload 19
bipush 16
aload 14
iconst_0
baload
sipush 255
iand
iadd
if_icmple 55
end local 19 58: aload 13
invokevirtual java.security.MessageDigest.digest:()[B
astore 16
59: iload 11
newarray 8
astore 19
start local 19 60: iconst_0
istore 18
61: goto 64
62: StackMap locals: byte[] java.lang.String java.lang.String int java.lang.String int int int java.util.regex.Matcher java.lang.String byte[] int java.security.MessageDigest java.security.MessageDigest byte[] int byte[] byte[] int byte[]
StackMap stack:
aload 16
iconst_0
aload 19
iload 18
iload 3
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
63: iload 18
iload 3
iadd
istore 18
64: StackMap locals:
StackMap stack:
iload 18
iload 11
iload 3
isub
if_icmplt 62
65: aload 16
iconst_0
aload 19
iload 18
iload 11
iload 18
isub
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
66: iconst_0
istore 20
start local 20 67: goto 83
68: StackMap locals: int
StackMap stack:
aload 4
invokestatic org.apache.commons.codec.digest.DigestUtils.getDigest:(Ljava/lang/String;)Ljava/security/MessageDigest;
astore 12
69: iload 20
iconst_1
iand
ifeq 72
70: aload 12
aload 17
iconst_0
iload 5
invokevirtual java.security.MessageDigest.update:([BII)V
71: goto 73
72: StackMap locals:
StackMap stack:
aload 12
aload 14
iconst_0
iload 3
invokevirtual java.security.MessageDigest.update:([BII)V
73: StackMap locals:
StackMap stack:
iload 20
iconst_3
irem
ifeq 75
74: aload 12
aload 19
iconst_0
iload 11
invokevirtual java.security.MessageDigest.update:([BII)V
75: StackMap locals:
StackMap stack:
iload 20
bipush 7
irem
ifeq 77
76: aload 12
aload 17
iconst_0
iload 5
invokevirtual java.security.MessageDigest.update:([BII)V
77: StackMap locals:
StackMap stack:
iload 20
iconst_1
iand
ifeq 80
78: aload 12
aload 14
iconst_0
iload 3
invokevirtual java.security.MessageDigest.update:([BII)V
79: goto 81
80: StackMap locals:
StackMap stack:
aload 12
aload 17
iconst_0
iload 5
invokevirtual java.security.MessageDigest.update:([BII)V
81: StackMap locals:
StackMap stack:
aload 12
invokevirtual java.security.MessageDigest.digest:()[B
astore 14
82: iinc 20 1
StackMap locals:
StackMap stack:
83: iload 20
iload 6
iconst_1
isub
if_icmple 68
end local 20 84: new java.lang.StringBuilder
dup
aload 2
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
astore 20
start local 20 85: iload 7
ifeq 89
86: aload 20
ldc "rounds="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
87: aload 20
iload 6
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
pop
88: aload 20
ldc "$"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
89: StackMap locals: byte[] java.lang.String java.lang.String int java.lang.String int int int java.util.regex.Matcher java.lang.String byte[] int java.security.MessageDigest java.security.MessageDigest byte[] int byte[] byte[] int byte[] java.lang.StringBuilder
StackMap stack:
aload 20
aload 9
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
90: aload 20
ldc "$"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
91: iload 3
bipush 32
if_icmpne 104
92: aload 14
iconst_0
baload
aload 14
bipush 10
baload
aload 14
bipush 20
baload
iconst_4
aload 20
invokestatic org.apache.commons.codec.digest.B64.b64from24bit:(BBBILjava/lang/StringBuilder;)V
93: aload 14
bipush 21
baload
aload 14
iconst_1
baload
aload 14
bipush 11
baload
iconst_4
aload 20
invokestatic org.apache.commons.codec.digest.B64.b64from24bit:(BBBILjava/lang/StringBuilder;)V
94: aload 14
bipush 12
baload
aload 14
bipush 22
baload
aload 14
iconst_2
baload
iconst_4
aload 20
invokestatic org.apache.commons.codec.digest.B64.b64from24bit:(BBBILjava/lang/StringBuilder;)V
95: aload 14
iconst_3
baload
aload 14
bipush 13
baload
aload 14
bipush 23
baload
iconst_4
aload 20
invokestatic org.apache.commons.codec.digest.B64.b64from24bit:(BBBILjava/lang/StringBuilder;)V
96: aload 14
bipush 24
baload
aload 14
iconst_4
baload
aload 14
bipush 14
baload
iconst_4
aload 20
invokestatic org.apache.commons.codec.digest.B64.b64from24bit:(BBBILjava/lang/StringBuilder;)V
97: aload 14
bipush 15
baload
aload 14
bipush 25
baload
aload 14
iconst_5
baload
iconst_4
aload 20
invokestatic org.apache.commons.codec.digest.B64.b64from24bit:(BBBILjava/lang/StringBuilder;)V
98: aload 14
bipush 6
baload
aload 14
bipush 16
baload
aload 14
bipush 26
baload
iconst_4
aload 20
invokestatic org.apache.commons.codec.digest.B64.b64from24bit:(BBBILjava/lang/StringBuilder;)V
99: aload 14
bipush 27
baload
aload 14
bipush 7
baload
aload 14
bipush 17
baload
iconst_4
aload 20
invokestatic org.apache.commons.codec.digest.B64.b64from24bit:(BBBILjava/lang/StringBuilder;)V
100: aload 14
bipush 18
baload
aload 14
bipush 28
baload
aload 14
bipush 8
baload
iconst_4
aload 20
invokestatic org.apache.commons.codec.digest.B64.b64from24bit:(BBBILjava/lang/StringBuilder;)V
101: aload 14
bipush 9
baload
aload 14
bipush 19
baload
aload 14
bipush 29
baload
iconst_4
aload 20
invokestatic org.apache.commons.codec.digest.B64.b64from24bit:(BBBILjava/lang/StringBuilder;)V
102: iconst_0
aload 14
bipush 31
baload
aload 14
bipush 30
baload
iconst_3
aload 20
invokestatic org.apache.commons.codec.digest.B64.b64from24bit:(BBBILjava/lang/StringBuilder;)V
103: goto 126
104: StackMap locals:
StackMap stack:
aload 14
iconst_0
baload
aload 14
bipush 21
baload
aload 14
bipush 42
baload
iconst_4
aload 20
invokestatic org.apache.commons.codec.digest.B64.b64from24bit:(BBBILjava/lang/StringBuilder;)V
105: aload 14
bipush 22
baload
aload 14
bipush 43
baload
aload 14
iconst_1
baload
iconst_4
aload 20
invokestatic org.apache.commons.codec.digest.B64.b64from24bit:(BBBILjava/lang/StringBuilder;)V
106: aload 14
bipush 44
baload
aload 14
iconst_2
baload
aload 14
bipush 23
baload
iconst_4
aload 20
invokestatic org.apache.commons.codec.digest.B64.b64from24bit:(BBBILjava/lang/StringBuilder;)V
107: aload 14
iconst_3
baload
aload 14
bipush 24
baload
aload 14
bipush 45
baload
iconst_4
aload 20
invokestatic org.apache.commons.codec.digest.B64.b64from24bit:(BBBILjava/lang/StringBuilder;)V
108: aload 14
bipush 25
baload
aload 14
bipush 46
baload
aload 14
iconst_4
baload
iconst_4
aload 20
invokestatic org.apache.commons.codec.digest.B64.b64from24bit:(BBBILjava/lang/StringBuilder;)V
109: aload 14
bipush 47
baload
aload 14
iconst_5
baload
aload 14
bipush 26
baload
iconst_4
aload 20
invokestatic org.apache.commons.codec.digest.B64.b64from24bit:(BBBILjava/lang/StringBuilder;)V
110: aload 14
bipush 6
baload
aload 14
bipush 27
baload
aload 14
bipush 48
baload
iconst_4
aload 20
invokestatic org.apache.commons.codec.digest.B64.b64from24bit:(BBBILjava/lang/StringBuilder;)V
111: aload 14
bipush 28
baload
aload 14
bipush 49
baload
aload 14
bipush 7
baload
iconst_4
aload 20
invokestatic org.apache.commons.codec.digest.B64.b64from24bit:(BBBILjava/lang/StringBuilder;)V
112: aload 14
bipush 50
baload
aload 14
bipush 8
baload
aload 14
bipush 29
baload
iconst_4
aload 20
invokestatic org.apache.commons.codec.digest.B64.b64from24bit:(BBBILjava/lang/StringBuilder;)V
113: aload 14
bipush 9
baload
aload 14
bipush 30
baload
aload 14
bipush 51
baload
iconst_4
aload 20
invokestatic org.apache.commons.codec.digest.B64.b64from24bit:(BBBILjava/lang/StringBuilder;)V
114: aload 14
bipush 31
baload
aload 14
bipush 52
baload
aload 14
bipush 10
baload
iconst_4
aload 20
invokestatic org.apache.commons.codec.digest.B64.b64from24bit:(BBBILjava/lang/StringBuilder;)V
115: aload 14
bipush 53
baload
aload 14
bipush 11
baload
aload 14
bipush 32
baload
iconst_4
aload 20
invokestatic org.apache.commons.codec.digest.B64.b64from24bit:(BBBILjava/lang/StringBuilder;)V
116: aload 14
bipush 12
baload
aload 14
bipush 33
baload
aload 14
bipush 54
baload
iconst_4
aload 20
invokestatic org.apache.commons.codec.digest.B64.b64from24bit:(BBBILjava/lang/StringBuilder;)V
117: aload 14
bipush 34
baload
aload 14
bipush 55
baload
aload 14
bipush 13
baload
iconst_4
aload 20
invokestatic org.apache.commons.codec.digest.B64.b64from24bit:(BBBILjava/lang/StringBuilder;)V
118: aload 14
bipush 56
baload
aload 14
bipush 14
baload
aload 14
bipush 35
baload
iconst_4
aload 20
invokestatic org.apache.commons.codec.digest.B64.b64from24bit:(BBBILjava/lang/StringBuilder;)V
119: aload 14
bipush 15
baload
aload 14
bipush 36
baload
aload 14
bipush 57
baload
iconst_4
aload 20
invokestatic org.apache.commons.codec.digest.B64.b64from24bit:(BBBILjava/lang/StringBuilder;)V
120: aload 14
bipush 37
baload
aload 14
bipush 58
baload
aload 14
bipush 16
baload
iconst_4
aload 20
invokestatic org.apache.commons.codec.digest.B64.b64from24bit:(BBBILjava/lang/StringBuilder;)V
121: aload 14
bipush 59
baload
aload 14
bipush 17
baload
aload 14
bipush 38
baload
iconst_4
aload 20
invokestatic org.apache.commons.codec.digest.B64.b64from24bit:(BBBILjava/lang/StringBuilder;)V
122: aload 14
bipush 18
baload
aload 14
bipush 39
baload
aload 14
bipush 60
baload
iconst_4
aload 20
invokestatic org.apache.commons.codec.digest.B64.b64from24bit:(BBBILjava/lang/StringBuilder;)V
123: aload 14
bipush 40
baload
aload 14
bipush 61
baload
aload 14
bipush 19
baload
iconst_4
aload 20
invokestatic org.apache.commons.codec.digest.B64.b64from24bit:(BBBILjava/lang/StringBuilder;)V
124: aload 14
bipush 62
baload
aload 14
bipush 20
baload
aload 14
bipush 41
baload
iconst_4
aload 20
invokestatic org.apache.commons.codec.digest.B64.b64from24bit:(BBBILjava/lang/StringBuilder;)V
125: iconst_0
iconst_0
aload 14
bipush 63
baload
iconst_2
aload 20
invokestatic org.apache.commons.codec.digest.B64.b64from24bit:(BBBILjava/lang/StringBuilder;)V
126: StackMap locals:
StackMap stack:
aload 16
iconst_0
invokestatic java.util.Arrays.fill:([BB)V
127: aload 17
iconst_0
invokestatic java.util.Arrays.fill:([BB)V
128: aload 19
iconst_0
invokestatic java.util.Arrays.fill:([BB)V
129: aload 12
invokevirtual java.security.MessageDigest.reset:()V
130: aload 13
invokevirtual java.security.MessageDigest.reset:()V
131: aload 0
iconst_0
invokestatic java.util.Arrays.fill:([BB)V
132: aload 10
iconst_0
invokestatic java.util.Arrays.fill:([BB)V
133: aload 20
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 20 end local 19 end local 18 end local 17 end local 16 end local 15 end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 134 0 keyBytes [B
0 134 1 salt Ljava/lang/String;
0 134 2 saltPrefix Ljava/lang/String;
0 134 3 blocksize I
0 134 4 algorithm Ljava/lang/String;
1 134 5 keyLen I
2 134 6 rounds I
3 134 7 roundsCustom Z
6 134 8 m Ljava/util/regex/Matcher;
13 134 9 saltString Ljava/lang/String;
14 134 10 saltBytes [B
15 134 11 saltLen I
16 134 12 ctx Ljava/security/MessageDigest;
19 134 13 altCtx Ljava/security/MessageDigest;
23 134 14 altResult [B
24 134 15 cnt I
40 44 16 i I
45 134 16 tempResult [B
46 134 17 pBytes [B
47 134 18 cp I
54 58 19 i I
60 134 19 sBytes [B
67 84 20 i I
85 134 20 buffer Ljava/lang/StringBuilder;
MethodParameters:
Name Flags
keyBytes final
salt final
saltPrefix final
blocksize final
algorithm final
public static java.lang.String sha512Crypt(byte[]);
descriptor: ([B)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aconst_null
invokestatic org.apache.commons.codec.digest.Sha2Crypt.sha512Crypt:([BLjava/lang/String;)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 keyBytes [B
MethodParameters:
Name Flags
keyBytes final
public static java.lang.String sha512Crypt(byte[], java.lang.String);
descriptor: ([BLjava/lang/String;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: new java.lang.StringBuilder
dup
ldc "$6$"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
bipush 8
invokestatic org.apache.commons.codec.digest.B64.getRandomSalt:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 1
2: StackMap locals:
StackMap stack:
aload 0
aload 1
ldc "$6$"
bipush 64
ldc "SHA-512"
invokestatic org.apache.commons.codec.digest.Sha2Crypt.sha2Crypt:([BLjava/lang/String;Ljava/lang/String;ILjava/lang/String;)Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 keyBytes [B
0 3 1 salt Ljava/lang/String;
MethodParameters:
Name Flags
keyBytes final
salt
public static java.lang.String sha512Crypt(byte[], java.lang.String, java.util.Random);
descriptor: ([BLjava/lang/String;Ljava/util/Random;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ifnonnull 2
1: new java.lang.StringBuilder
dup
ldc "$6$"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
bipush 8
aload 2
invokestatic org.apache.commons.codec.digest.B64.getRandomSalt:(ILjava/util/Random;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 1
2: StackMap locals:
StackMap stack:
aload 0
aload 1
ldc "$6$"
bipush 64
ldc "SHA-512"
invokestatic org.apache.commons.codec.digest.Sha2Crypt.sha2Crypt:([BLjava/lang/String;Ljava/lang/String;ILjava/lang/String;)Ljava/lang/String;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 keyBytes [B
0 3 1 salt Ljava/lang/String;
0 3 2 random Ljava/util/Random;
MethodParameters:
Name Flags
keyBytes final
salt
random final
}
SourceFile: "Sha2Crypt.java"