public class io.vertx.ext.auth.htpasswd.impl.hash.APR1 implements io.vertx.ext.auth.HashingAlgorithm
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: io.vertx.ext.auth.htpasswd.impl.hash.APR1
  super_class: java.lang.Object
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.ext.auth.htpasswd.impl.hash.APR1 this
         0: .line 27
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // io.vertx.ext.auth.htpasswd.impl.hash.APR1 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/ext/auth/htpasswd/impl/hash/APR1;

  public java.lang.String id();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.ext.auth.htpasswd.impl.hash.APR1 this
         0: .line 31
            ldc "apr1"
            areturn
        end local 0 // io.vertx.ext.auth.htpasswd.impl.hash.APR1 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/ext/auth/htpasswd/impl/hash/APR1;

  public java.lang.String hash(io.vertx.ext.auth.HashString, java.lang.String);
    descriptor: (Lio/vertx/ext/auth/HashString;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // io.vertx.ext.auth.htpasswd.impl.hash.APR1 this
        start local 1 // io.vertx.ext.auth.HashString hashString
        start local 2 // java.lang.String password
         0: .line 36
            new java.lang.StringBuilder
            dup
            ldc "$apr1$"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* hashString */
            invokevirtual io.vertx.ext.auth.HashString.salt:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* apr1Salt */
        start local 3 // java.lang.String apr1Salt
         1: .line 37
            aload 2 /* password */
            aload 3 /* apr1Salt */
            invokestatic org.apache.commons.codec.digest.Md5Crypt.apr1Crypt:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* res */
        start local 4 // java.lang.String res
         2: .line 39
            aload 4 /* res */
            aload 3 /* apr1Salt */
            invokevirtual java.lang.String.length:()I
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            areturn
        end local 4 // java.lang.String res
        end local 3 // java.lang.String apr1Salt
        end local 2 // java.lang.String password
        end local 1 // io.vertx.ext.auth.HashString hashString
        end local 0 // io.vertx.ext.auth.htpasswd.impl.hash.APR1 this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lio/vertx/ext/auth/htpasswd/impl/hash/APR1;
            0    3     1  hashString  Lio/vertx/ext/auth/HashString;
            0    3     2    password  Ljava/lang/String;
            1    3     3    apr1Salt  Ljava/lang/String;
            2    3     4         res  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      hashString  
      password    
}
SourceFile: "APR1.java"