2026-07-06 19:54:44 +08:00

2319 lines
47 KiB
Smali

.class public final Lcom/blankj/utilcode/util/EncryptUtils;
.super Ljava/lang/Object;
.source "EncryptUtils.java"
# direct methods
.method private constructor <init>()V
.locals 2
.line 36
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 37
new-instance v0, Ljava/lang/UnsupportedOperationException;
const-string v1, "u can\'t instantiate me..."
invoke-direct {v0, v1}, Ljava/lang/UnsupportedOperationException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public static decrypt3DES([B[BLjava/lang/String;[B)[B
.locals 6
const-string v2, "DESede"
const/4 v5, 0x0
move-object v0, p0
move-object v1, p1
move-object v3, p2
move-object v4, p3
.line 817
invoke-static/range {v0 .. v5}, Lcom/blankj/utilcode/util/EncryptUtils;->symmetricTemplate([B[BLjava/lang/String;Ljava/lang/String;[BZ)[B
move-result-object p0
return-object p0
.end method
.method public static decryptAES([B[BLjava/lang/String;[B)[B
.locals 6
const-string v2, "AES"
const/4 v5, 0x0
move-object v0, p0
move-object v1, p1
move-object v3, p2
move-object v4, p3
.line 923
invoke-static/range {v0 .. v5}, Lcom/blankj/utilcode/util/EncryptUtils;->symmetricTemplate([B[BLjava/lang/String;Ljava/lang/String;[BZ)[B
move-result-object p0
return-object p0
.end method
.method public static decryptBase64AES([B[BLjava/lang/String;[B)[B
.locals 0
.line 889
invoke-static {p0}, Lcom/blankj/utilcode/util/UtilsBridge;->base64Decode([B)[B
move-result-object p0
invoke-static {p0, p1, p2, p3}, Lcom/blankj/utilcode/util/EncryptUtils;->decryptAES([B[BLjava/lang/String;[B)[B
move-result-object p0
return-object p0
.end method
.method public static decryptBase64DES([B[BLjava/lang/String;[B)[B
.locals 0
.line 677
invoke-static {p0}, Lcom/blankj/utilcode/util/UtilsBridge;->base64Decode([B)[B
move-result-object p0
invoke-static {p0, p1, p2, p3}, Lcom/blankj/utilcode/util/EncryptUtils;->decryptDES([B[BLjava/lang/String;[B)[B
move-result-object p0
return-object p0
.end method
.method public static decryptBase64RSA([B[BILjava/lang/String;)[B
.locals 0
.line 1031
invoke-static {p0}, Lcom/blankj/utilcode/util/UtilsBridge;->base64Decode([B)[B
move-result-object p0
invoke-static {p0, p1, p2, p3}, Lcom/blankj/utilcode/util/EncryptUtils;->decryptRSA([B[BILjava/lang/String;)[B
move-result-object p0
return-object p0
.end method
.method public static decryptBase64_3DES([B[BLjava/lang/String;[B)[B
.locals 0
.line 783
invoke-static {p0}, Lcom/blankj/utilcode/util/UtilsBridge;->base64Decode([B)[B
move-result-object p0
invoke-static {p0, p1, p2, p3}, Lcom/blankj/utilcode/util/EncryptUtils;->decrypt3DES([B[BLjava/lang/String;[B)[B
move-result-object p0
return-object p0
.end method
.method public static decryptDES([B[BLjava/lang/String;[B)[B
.locals 6
const-string v2, "DES"
const/4 v5, 0x0
move-object v0, p0
move-object v1, p1
move-object v3, p2
move-object v4, p3
.line 711
invoke-static/range {v0 .. v5}, Lcom/blankj/utilcode/util/EncryptUtils;->symmetricTemplate([B[BLjava/lang/String;Ljava/lang/String;[BZ)[B
move-result-object p0
return-object p0
.end method
.method public static decryptHexString3DES(Ljava/lang/String;[BLjava/lang/String;[B)[B
.locals 0
.line 800
invoke-static {p0}, Lcom/blankj/utilcode/util/UtilsBridge;->hexString2Bytes(Ljava/lang/String;)[B
move-result-object p0
invoke-static {p0, p1, p2, p3}, Lcom/blankj/utilcode/util/EncryptUtils;->decrypt3DES([B[BLjava/lang/String;[B)[B
move-result-object p0
return-object p0
.end method
.method public static decryptHexStringAES(Ljava/lang/String;[BLjava/lang/String;[B)[B
.locals 0
.line 906
invoke-static {p0}, Lcom/blankj/utilcode/util/UtilsBridge;->hexString2Bytes(Ljava/lang/String;)[B
move-result-object p0
invoke-static {p0, p1, p2, p3}, Lcom/blankj/utilcode/util/EncryptUtils;->decryptAES([B[BLjava/lang/String;[B)[B
move-result-object p0
return-object p0
.end method
.method public static decryptHexStringDES(Ljava/lang/String;[BLjava/lang/String;[B)[B
.locals 0
.line 694
invoke-static {p0}, Lcom/blankj/utilcode/util/UtilsBridge;->hexString2Bytes(Ljava/lang/String;)[B
move-result-object p0
invoke-static {p0, p1, p2, p3}, Lcom/blankj/utilcode/util/EncryptUtils;->decryptDES([B[BLjava/lang/String;[B)[B
move-result-object p0
return-object p0
.end method
.method public static decryptHexStringRSA(Ljava/lang/String;[BILjava/lang/String;)[B
.locals 0
.line 1047
invoke-static {p0}, Lcom/blankj/utilcode/util/UtilsBridge;->hexString2Bytes(Ljava/lang/String;)[B
move-result-object p0
invoke-static {p0, p1, p2, p3}, Lcom/blankj/utilcode/util/EncryptUtils;->decryptRSA([B[BILjava/lang/String;)[B
move-result-object p0
return-object p0
.end method
.method public static decryptRSA([B[BILjava/lang/String;)[B
.locals 1
const/4 v0, 0x0
.line 1063
invoke-static {p0, p1, p2, p3, v0}, Lcom/blankj/utilcode/util/EncryptUtils;->rsaTemplate([B[BILjava/lang/String;Z)[B
move-result-object p0
return-object p0
.end method
.method public static encrypt3DES([B[BLjava/lang/String;[B)[B
.locals 6
const-string v2, "DESede"
const/4 v5, 0x1
move-object v0, p0
move-object v1, p1
move-object v3, p2
move-object v4, p3
.line 766
invoke-static/range {v0 .. v5}, Lcom/blankj/utilcode/util/EncryptUtils;->symmetricTemplate([B[BLjava/lang/String;Ljava/lang/String;[BZ)[B
move-result-object p0
return-object p0
.end method
.method public static encrypt3DES2Base64([B[BLjava/lang/String;[B)[B
.locals 0
.line 732
invoke-static {p0, p1, p2, p3}, Lcom/blankj/utilcode/util/EncryptUtils;->encrypt3DES([B[BLjava/lang/String;[B)[B
move-result-object p0
invoke-static {p0}, Lcom/blankj/utilcode/util/UtilsBridge;->base64Encode([B)[B
move-result-object p0
return-object p0
.end method
.method public static encrypt3DES2HexString([B[BLjava/lang/String;[B)Ljava/lang/String;
.locals 0
.line 749
invoke-static {p0, p1, p2, p3}, Lcom/blankj/utilcode/util/EncryptUtils;->encrypt3DES([B[BLjava/lang/String;[B)[B
move-result-object p0
invoke-static {p0}, Lcom/blankj/utilcode/util/UtilsBridge;->bytes2HexString([B)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static encryptAES([B[BLjava/lang/String;[B)[B
.locals 6
const-string v2, "AES"
const/4 v5, 0x1
move-object v0, p0
move-object v1, p1
move-object v3, p2
move-object v4, p3
.line 872
invoke-static/range {v0 .. v5}, Lcom/blankj/utilcode/util/EncryptUtils;->symmetricTemplate([B[BLjava/lang/String;Ljava/lang/String;[BZ)[B
move-result-object p0
return-object p0
.end method
.method public static encryptAES2Base64([B[BLjava/lang/String;[B)[B
.locals 0
.line 838
invoke-static {p0, p1, p2, p3}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptAES([B[BLjava/lang/String;[B)[B
move-result-object p0
invoke-static {p0}, Lcom/blankj/utilcode/util/UtilsBridge;->base64Encode([B)[B
move-result-object p0
return-object p0
.end method
.method public static encryptAES2HexString([B[BLjava/lang/String;[B)Ljava/lang/String;
.locals 0
.line 855
invoke-static {p0, p1, p2, p3}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptAES([B[BLjava/lang/String;[B)[B
move-result-object p0
invoke-static {p0}, Lcom/blankj/utilcode/util/UtilsBridge;->bytes2HexString([B)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static encryptDES([B[BLjava/lang/String;[B)[B
.locals 6
const-string v2, "DES"
const/4 v5, 0x1
move-object v0, p0
move-object v1, p1
move-object v3, p2
move-object v4, p3
.line 660
invoke-static/range {v0 .. v5}, Lcom/blankj/utilcode/util/EncryptUtils;->symmetricTemplate([B[BLjava/lang/String;Ljava/lang/String;[BZ)[B
move-result-object p0
return-object p0
.end method
.method public static encryptDES2Base64([B[BLjava/lang/String;[B)[B
.locals 0
.line 626
invoke-static {p0, p1, p2, p3}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptDES([B[BLjava/lang/String;[B)[B
move-result-object p0
invoke-static {p0}, Lcom/blankj/utilcode/util/UtilsBridge;->base64Encode([B)[B
move-result-object p0
return-object p0
.end method
.method public static encryptDES2HexString([B[BLjava/lang/String;[B)Ljava/lang/String;
.locals 0
.line 643
invoke-static {p0, p1, p2, p3}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptDES([B[BLjava/lang/String;[B)[B
move-result-object p0
invoke-static {p0}, Lcom/blankj/utilcode/util/UtilsBridge;->bytes2HexString([B)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static encryptHmacMD5([B[B)[B
.locals 1
const-string v0, "HmacMD5"
.line 412
invoke-static {p0, p1, v0}, Lcom/blankj/utilcode/util/EncryptUtils;->hmacTemplate([B[BLjava/lang/String;)[B
move-result-object p0
return-object p0
.end method
.method public static encryptHmacMD5ToString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
.locals 1
if-eqz p0, :cond_1
.line 389
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v0
if-eqz v0, :cond_1
if-eqz p1, :cond_1
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result v0
if-nez v0, :cond_0
goto :goto_0
.line 390
:cond_0
invoke-virtual {p0}, Ljava/lang/String;->getBytes()[B
move-result-object p0
invoke-virtual {p1}, Ljava/lang/String;->getBytes()[B
move-result-object p1
invoke-static {p0, p1}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptHmacMD5ToString([B[B)Ljava/lang/String;
move-result-object p0
return-object p0
:cond_1
:goto_0
const-string p0, ""
return-object p0
.end method
.method public static encryptHmacMD5ToString([B[B)Ljava/lang/String;
.locals 0
.line 401
invoke-static {p0, p1}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptHmacMD5([B[B)[B
move-result-object p0
invoke-static {p0}, Lcom/blankj/utilcode/util/UtilsBridge;->bytes2HexString([B)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static encryptHmacSHA1([B[B)[B
.locals 1
const-string v0, "HmacSHA1"
.line 446
invoke-static {p0, p1, v0}, Lcom/blankj/utilcode/util/EncryptUtils;->hmacTemplate([B[BLjava/lang/String;)[B
move-result-object p0
return-object p0
.end method
.method public static encryptHmacSHA1ToString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
.locals 1
if-eqz p0, :cond_1
.line 423
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v0
if-eqz v0, :cond_1
if-eqz p1, :cond_1
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result v0
if-nez v0, :cond_0
goto :goto_0
.line 424
:cond_0
invoke-virtual {p0}, Ljava/lang/String;->getBytes()[B
move-result-object p0
invoke-virtual {p1}, Ljava/lang/String;->getBytes()[B
move-result-object p1
invoke-static {p0, p1}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptHmacSHA1ToString([B[B)Ljava/lang/String;
move-result-object p0
return-object p0
:cond_1
:goto_0
const-string p0, ""
return-object p0
.end method
.method public static encryptHmacSHA1ToString([B[B)Ljava/lang/String;
.locals 0
.line 435
invoke-static {p0, p1}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptHmacSHA1([B[B)[B
move-result-object p0
invoke-static {p0}, Lcom/blankj/utilcode/util/UtilsBridge;->bytes2HexString([B)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static encryptHmacSHA224([B[B)[B
.locals 1
const-string v0, "HmacSHA224"
.line 480
invoke-static {p0, p1, v0}, Lcom/blankj/utilcode/util/EncryptUtils;->hmacTemplate([B[BLjava/lang/String;)[B
move-result-object p0
return-object p0
.end method
.method public static encryptHmacSHA224ToString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
.locals 1
if-eqz p0, :cond_1
.line 457
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v0
if-eqz v0, :cond_1
if-eqz p1, :cond_1
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result v0
if-nez v0, :cond_0
goto :goto_0
.line 458
:cond_0
invoke-virtual {p0}, Ljava/lang/String;->getBytes()[B
move-result-object p0
invoke-virtual {p1}, Ljava/lang/String;->getBytes()[B
move-result-object p1
invoke-static {p0, p1}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptHmacSHA224ToString([B[B)Ljava/lang/String;
move-result-object p0
return-object p0
:cond_1
:goto_0
const-string p0, ""
return-object p0
.end method
.method public static encryptHmacSHA224ToString([B[B)Ljava/lang/String;
.locals 0
.line 469
invoke-static {p0, p1}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptHmacSHA224([B[B)[B
move-result-object p0
invoke-static {p0}, Lcom/blankj/utilcode/util/UtilsBridge;->bytes2HexString([B)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static encryptHmacSHA256([B[B)[B
.locals 1
const-string v0, "HmacSHA256"
.line 514
invoke-static {p0, p1, v0}, Lcom/blankj/utilcode/util/EncryptUtils;->hmacTemplate([B[BLjava/lang/String;)[B
move-result-object p0
return-object p0
.end method
.method public static encryptHmacSHA256ToString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
.locals 1
if-eqz p0, :cond_1
.line 491
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v0
if-eqz v0, :cond_1
if-eqz p1, :cond_1
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result v0
if-nez v0, :cond_0
goto :goto_0
.line 492
:cond_0
invoke-virtual {p0}, Ljava/lang/String;->getBytes()[B
move-result-object p0
invoke-virtual {p1}, Ljava/lang/String;->getBytes()[B
move-result-object p1
invoke-static {p0, p1}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptHmacSHA256ToString([B[B)Ljava/lang/String;
move-result-object p0
return-object p0
:cond_1
:goto_0
const-string p0, ""
return-object p0
.end method
.method public static encryptHmacSHA256ToString([B[B)Ljava/lang/String;
.locals 0
.line 503
invoke-static {p0, p1}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptHmacSHA256([B[B)[B
move-result-object p0
invoke-static {p0}, Lcom/blankj/utilcode/util/UtilsBridge;->bytes2HexString([B)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static encryptHmacSHA384([B[B)[B
.locals 1
const-string v0, "HmacSHA384"
.line 548
invoke-static {p0, p1, v0}, Lcom/blankj/utilcode/util/EncryptUtils;->hmacTemplate([B[BLjava/lang/String;)[B
move-result-object p0
return-object p0
.end method
.method public static encryptHmacSHA384ToString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
.locals 1
if-eqz p0, :cond_1
.line 525
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v0
if-eqz v0, :cond_1
if-eqz p1, :cond_1
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result v0
if-nez v0, :cond_0
goto :goto_0
.line 526
:cond_0
invoke-virtual {p0}, Ljava/lang/String;->getBytes()[B
move-result-object p0
invoke-virtual {p1}, Ljava/lang/String;->getBytes()[B
move-result-object p1
invoke-static {p0, p1}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptHmacSHA384ToString([B[B)Ljava/lang/String;
move-result-object p0
return-object p0
:cond_1
:goto_0
const-string p0, ""
return-object p0
.end method
.method public static encryptHmacSHA384ToString([B[B)Ljava/lang/String;
.locals 0
.line 537
invoke-static {p0, p1}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptHmacSHA384([B[B)[B
move-result-object p0
invoke-static {p0}, Lcom/blankj/utilcode/util/UtilsBridge;->bytes2HexString([B)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static encryptHmacSHA512([B[B)[B
.locals 1
const-string v0, "HmacSHA512"
.line 582
invoke-static {p0, p1, v0}, Lcom/blankj/utilcode/util/EncryptUtils;->hmacTemplate([B[BLjava/lang/String;)[B
move-result-object p0
return-object p0
.end method
.method public static encryptHmacSHA512ToString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
.locals 1
if-eqz p0, :cond_1
.line 559
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v0
if-eqz v0, :cond_1
if-eqz p1, :cond_1
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result v0
if-nez v0, :cond_0
goto :goto_0
.line 560
:cond_0
invoke-virtual {p0}, Ljava/lang/String;->getBytes()[B
move-result-object p0
invoke-virtual {p1}, Ljava/lang/String;->getBytes()[B
move-result-object p1
invoke-static {p0, p1}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptHmacSHA512ToString([B[B)Ljava/lang/String;
move-result-object p0
return-object p0
:cond_1
:goto_0
const-string p0, ""
return-object p0
.end method
.method public static encryptHmacSHA512ToString([B[B)Ljava/lang/String;
.locals 0
.line 571
invoke-static {p0, p1}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptHmacSHA512([B[B)[B
move-result-object p0
invoke-static {p0}, Lcom/blankj/utilcode/util/UtilsBridge;->bytes2HexString([B)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static encryptMD2([B)[B
.locals 1
const-string v0, "MD2"
.line 72
invoke-static {p0, v0}, Lcom/blankj/utilcode/util/EncryptUtils;->hashTemplate([BLjava/lang/String;)[B
move-result-object p0
return-object p0
.end method
.method public static encryptMD2ToString(Ljava/lang/String;)Ljava/lang/String;
.locals 1
if-eqz p0, :cond_1
.line 51
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v0
if-nez v0, :cond_0
goto :goto_0
.line 52
:cond_0
invoke-virtual {p0}, Ljava/lang/String;->getBytes()[B
move-result-object p0
invoke-static {p0}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptMD2ToString([B)Ljava/lang/String;
move-result-object p0
return-object p0
:cond_1
:goto_0
const-string p0, ""
return-object p0
.end method
.method public static encryptMD2ToString([B)Ljava/lang/String;
.locals 0
.line 62
invoke-static {p0}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptMD2([B)[B
move-result-object p0
invoke-static {p0}, Lcom/blankj/utilcode/util/UtilsBridge;->bytes2HexString([B)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static encryptMD5([B)[B
.locals 1
const-string v0, "MD5"
.line 134
invoke-static {p0, v0}, Lcom/blankj/utilcode/util/EncryptUtils;->hashTemplate([BLjava/lang/String;)[B
move-result-object p0
return-object p0
.end method
.method public static encryptMD5File(Ljava/io/File;)[B
.locals 4
const/4 v0, 0x0
if-nez p0, :cond_0
return-object v0
.line 180
:cond_0
:try_start_0
new-instance v1, Ljava/io/FileInputStream;
invoke-direct {v1, p0}, Ljava/io/FileInputStream;-><init>(Ljava/io/File;)V
:try_end_0
.catch Ljava/security/NoSuchAlgorithmException; {:try_start_0 .. :try_end_0} :catch_4
.catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_3
.catchall {:try_start_0 .. :try_end_0} :catchall_0
:try_start_1
const-string p0, "MD5"
.line 181
invoke-static {p0}, Ljava/security/MessageDigest;->getInstance(Ljava/lang/String;)Ljava/security/MessageDigest;
move-result-object p0
.line 182
new-instance v2, Ljava/security/DigestInputStream;
invoke-direct {v2, v1, p0}, Ljava/security/DigestInputStream;-><init>(Ljava/io/InputStream;Ljava/security/MessageDigest;)V
const/high16 p0, 0x40000
new-array p0, p0, [B
.line 185
:cond_1
invoke-virtual {v2, p0}, Ljava/security/DigestInputStream;->read([B)I
move-result v3
if-gtz v3, :cond_1
.line 187
invoke-virtual {v2}, Ljava/security/DigestInputStream;->getMessageDigest()Ljava/security/MessageDigest;
move-result-object p0
.line 188
invoke-virtual {p0}, Ljava/security/MessageDigest;->digest()[B
move-result-object p0
:try_end_1
.catch Ljava/security/NoSuchAlgorithmException; {:try_start_1 .. :try_end_1} :catch_2
.catch Ljava/io/IOException; {:try_start_1 .. :try_end_1} :catch_1
.catchall {:try_start_1 .. :try_end_1} :catchall_1
.line 195
:try_start_2
invoke-virtual {v1}, Ljava/io/FileInputStream;->close()V
:try_end_2
.catch Ljava/io/IOException; {:try_start_2 .. :try_end_2} :catch_0
goto :goto_0
:catch_0
move-exception v0
.line 198
invoke-virtual {v0}, Ljava/io/IOException;->printStackTrace()V
:goto_0
return-object p0
:catch_1
move-exception p0
goto :goto_2
:catch_2
move-exception p0
goto :goto_2
:catchall_0
move-exception p0
goto :goto_4
:catch_3
move-exception p0
goto :goto_1
:catch_4
move-exception p0
:goto_1
move-object v1, v0
.line 190
:goto_2
:try_start_3
invoke-virtual {p0}, Ljava/lang/Exception;->printStackTrace()V
:try_end_3
.catchall {:try_start_3 .. :try_end_3} :catchall_1
if-eqz v1, :cond_2
.line 195
:try_start_4
invoke-virtual {v1}, Ljava/io/FileInputStream;->close()V
:try_end_4
.catch Ljava/io/IOException; {:try_start_4 .. :try_end_4} :catch_5
goto :goto_3
:catch_5
move-exception p0
.line 198
invoke-virtual {p0}, Ljava/io/IOException;->printStackTrace()V
:cond_2
:goto_3
return-object v0
:catchall_1
move-exception p0
move-object v0, v1
:goto_4
if-eqz v0, :cond_3
.line 195
:try_start_5
invoke-virtual {v0}, Ljava/io/FileInputStream;->close()V
:try_end_5
.catch Ljava/io/IOException; {:try_start_5 .. :try_end_5} :catch_6
goto :goto_5
:catch_6
move-exception v0
.line 198
invoke-virtual {v0}, Ljava/io/IOException;->printStackTrace()V
.line 200
:cond_3
:goto_5
throw p0
.end method
.method public static encryptMD5File(Ljava/lang/String;)[B
.locals 1
.line 155
invoke-static {p0}, Lcom/blankj/utilcode/util/UtilsBridge;->isSpace(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_0
const/4 p0, 0x0
goto :goto_0
:cond_0
new-instance v0, Ljava/io/File;
invoke-direct {v0, p0}, Ljava/io/File;-><init>(Ljava/lang/String;)V
move-object p0, v0
.line 156
:goto_0
invoke-static {p0}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptMD5File(Ljava/io/File;)[B
move-result-object p0
return-object p0
.end method
.method public static encryptMD5File2String(Ljava/io/File;)Ljava/lang/String;
.locals 0
.line 166
invoke-static {p0}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptMD5File(Ljava/io/File;)[B
move-result-object p0
invoke-static {p0}, Lcom/blankj/utilcode/util/UtilsBridge;->bytes2HexString([B)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static encryptMD5File2String(Ljava/lang/String;)Ljava/lang/String;
.locals 1
.line 144
invoke-static {p0}, Lcom/blankj/utilcode/util/UtilsBridge;->isSpace(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_0
const/4 p0, 0x0
goto :goto_0
:cond_0
new-instance v0, Ljava/io/File;
invoke-direct {v0, p0}, Ljava/io/File;-><init>(Ljava/lang/String;)V
move-object p0, v0
.line 145
:goto_0
invoke-static {p0}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptMD5File2String(Ljava/io/File;)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static encryptMD5ToString(Ljava/lang/String;)Ljava/lang/String;
.locals 1
if-eqz p0, :cond_1
.line 82
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v0
if-nez v0, :cond_0
goto :goto_0
.line 83
:cond_0
invoke-virtual {p0}, Ljava/lang/String;->getBytes()[B
move-result-object p0
invoke-static {p0}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptMD5ToString([B)Ljava/lang/String;
move-result-object p0
return-object p0
:cond_1
:goto_0
const-string p0, ""
return-object p0
.end method
.method public static encryptMD5ToString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
.locals 1
if-nez p0, :cond_0
if-nez p1, :cond_0
const-string p0, ""
return-object p0
:cond_0
if-nez p1, :cond_1
.line 95
invoke-virtual {p0}, Ljava/lang/String;->getBytes()[B
move-result-object p0
invoke-static {p0}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptMD5([B)[B
move-result-object p0
invoke-static {p0}, Lcom/blankj/utilcode/util/UtilsBridge;->bytes2HexString([B)Ljava/lang/String;
move-result-object p0
return-object p0
:cond_1
if-nez p0, :cond_2
.line 96
invoke-virtual {p1}, Ljava/lang/String;->getBytes()[B
move-result-object p0
invoke-static {p0}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptMD5([B)[B
move-result-object p0
invoke-static {p0}, Lcom/blankj/utilcode/util/UtilsBridge;->bytes2HexString([B)Ljava/lang/String;
move-result-object p0
return-object p0
.line 97
:cond_2
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object p0
invoke-virtual {p0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object p0
invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
invoke-virtual {p0}, Ljava/lang/String;->getBytes()[B
move-result-object p0
invoke-static {p0}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptMD5([B)[B
move-result-object p0
invoke-static {p0}, Lcom/blankj/utilcode/util/UtilsBridge;->bytes2HexString([B)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static encryptMD5ToString([B)Ljava/lang/String;
.locals 0
.line 107
invoke-static {p0}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptMD5([B)[B
move-result-object p0
invoke-static {p0}, Lcom/blankj/utilcode/util/UtilsBridge;->bytes2HexString([B)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static encryptMD5ToString([B[B)Ljava/lang/String;
.locals 3
if-nez p0, :cond_0
if-nez p1, :cond_0
const-string p0, ""
return-object p0
:cond_0
if-nez p1, :cond_1
.line 119
invoke-static {p0}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptMD5([B)[B
move-result-object p0
invoke-static {p0}, Lcom/blankj/utilcode/util/UtilsBridge;->bytes2HexString([B)Ljava/lang/String;
move-result-object p0
return-object p0
:cond_1
if-nez p0, :cond_2
.line 120
invoke-static {p1}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptMD5([B)[B
move-result-object p0
invoke-static {p0}, Lcom/blankj/utilcode/util/UtilsBridge;->bytes2HexString([B)Ljava/lang/String;
move-result-object p0
return-object p0
.line 121
:cond_2
array-length v0, p0
array-length v1, p1
add-int/2addr v0, v1
new-array v0, v0, [B
.line 122
array-length v1, p0
const/4 v2, 0x0
invoke-static {p0, v2, v0, v2, v1}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 123
array-length p0, p0
array-length v1, p1
invoke-static {p1, v2, v0, p0, v1}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 124
invoke-static {v0}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptMD5([B)[B
move-result-object p0
invoke-static {p0}, Lcom/blankj/utilcode/util/UtilsBridge;->bytes2HexString([B)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static encryptRSA([B[BILjava/lang/String;)[B
.locals 1
const/4 v0, 0x1
.line 1015
invoke-static {p0, p1, p2, p3, v0}, Lcom/blankj/utilcode/util/EncryptUtils;->rsaTemplate([B[BILjava/lang/String;Z)[B
move-result-object p0
return-object p0
.end method
.method public static encryptRSA2Base64([B[BILjava/lang/String;)[B
.locals 0
.line 983
invoke-static {p0, p1, p2, p3}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptRSA([B[BILjava/lang/String;)[B
move-result-object p0
invoke-static {p0}, Lcom/blankj/utilcode/util/UtilsBridge;->base64Encode([B)[B
move-result-object p0
return-object p0
.end method
.method public static encryptRSA2HexString([B[BILjava/lang/String;)Ljava/lang/String;
.locals 0
.line 999
invoke-static {p0, p1, p2, p3}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptRSA([B[BILjava/lang/String;)[B
move-result-object p0
invoke-static {p0}, Lcom/blankj/utilcode/util/UtilsBridge;->bytes2HexString([B)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static encryptSHA1([B)[B
.locals 1
const-string v0, "SHA-1"
.line 231
invoke-static {p0, v0}, Lcom/blankj/utilcode/util/EncryptUtils;->hashTemplate([BLjava/lang/String;)[B
move-result-object p0
return-object p0
.end method
.method public static encryptSHA1ToString(Ljava/lang/String;)Ljava/lang/String;
.locals 1
if-eqz p0, :cond_1
.line 210
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v0
if-nez v0, :cond_0
goto :goto_0
.line 211
:cond_0
invoke-virtual {p0}, Ljava/lang/String;->getBytes()[B
move-result-object p0
invoke-static {p0}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptSHA1ToString([B)Ljava/lang/String;
move-result-object p0
return-object p0
:cond_1
:goto_0
const-string p0, ""
return-object p0
.end method
.method public static encryptSHA1ToString([B)Ljava/lang/String;
.locals 0
.line 221
invoke-static {p0}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptSHA1([B)[B
move-result-object p0
invoke-static {p0}, Lcom/blankj/utilcode/util/UtilsBridge;->bytes2HexString([B)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static encryptSHA224([B)[B
.locals 1
const-string v0, "SHA224"
.line 262
invoke-static {p0, v0}, Lcom/blankj/utilcode/util/EncryptUtils;->hashTemplate([BLjava/lang/String;)[B
move-result-object p0
return-object p0
.end method
.method public static encryptSHA224ToString(Ljava/lang/String;)Ljava/lang/String;
.locals 1
if-eqz p0, :cond_1
.line 241
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v0
if-nez v0, :cond_0
goto :goto_0
.line 242
:cond_0
invoke-virtual {p0}, Ljava/lang/String;->getBytes()[B
move-result-object p0
invoke-static {p0}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptSHA224ToString([B)Ljava/lang/String;
move-result-object p0
return-object p0
:cond_1
:goto_0
const-string p0, ""
return-object p0
.end method
.method public static encryptSHA224ToString([B)Ljava/lang/String;
.locals 0
.line 252
invoke-static {p0}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptSHA224([B)[B
move-result-object p0
invoke-static {p0}, Lcom/blankj/utilcode/util/UtilsBridge;->bytes2HexString([B)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static encryptSHA256([B)[B
.locals 1
const-string v0, "SHA-256"
.line 293
invoke-static {p0, v0}, Lcom/blankj/utilcode/util/EncryptUtils;->hashTemplate([BLjava/lang/String;)[B
move-result-object p0
return-object p0
.end method
.method public static encryptSHA256ToString(Ljava/lang/String;)Ljava/lang/String;
.locals 1
if-eqz p0, :cond_1
.line 272
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v0
if-nez v0, :cond_0
goto :goto_0
.line 273
:cond_0
invoke-virtual {p0}, Ljava/lang/String;->getBytes()[B
move-result-object p0
invoke-static {p0}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptSHA256ToString([B)Ljava/lang/String;
move-result-object p0
return-object p0
:cond_1
:goto_0
const-string p0, ""
return-object p0
.end method
.method public static encryptSHA256ToString([B)Ljava/lang/String;
.locals 0
.line 283
invoke-static {p0}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptSHA256([B)[B
move-result-object p0
invoke-static {p0}, Lcom/blankj/utilcode/util/UtilsBridge;->bytes2HexString([B)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static encryptSHA384([B)[B
.locals 1
const-string v0, "SHA-384"
.line 324
invoke-static {p0, v0}, Lcom/blankj/utilcode/util/EncryptUtils;->hashTemplate([BLjava/lang/String;)[B
move-result-object p0
return-object p0
.end method
.method public static encryptSHA384ToString(Ljava/lang/String;)Ljava/lang/String;
.locals 1
if-eqz p0, :cond_1
.line 303
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v0
if-nez v0, :cond_0
goto :goto_0
.line 304
:cond_0
invoke-virtual {p0}, Ljava/lang/String;->getBytes()[B
move-result-object p0
invoke-static {p0}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptSHA384ToString([B)Ljava/lang/String;
move-result-object p0
return-object p0
:cond_1
:goto_0
const-string p0, ""
return-object p0
.end method
.method public static encryptSHA384ToString([B)Ljava/lang/String;
.locals 0
.line 314
invoke-static {p0}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptSHA384([B)[B
move-result-object p0
invoke-static {p0}, Lcom/blankj/utilcode/util/UtilsBridge;->bytes2HexString([B)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static encryptSHA512([B)[B
.locals 1
const-string v0, "SHA-512"
.line 355
invoke-static {p0, v0}, Lcom/blankj/utilcode/util/EncryptUtils;->hashTemplate([BLjava/lang/String;)[B
move-result-object p0
return-object p0
.end method
.method public static encryptSHA512ToString(Ljava/lang/String;)Ljava/lang/String;
.locals 1
if-eqz p0, :cond_1
.line 334
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v0
if-nez v0, :cond_0
goto :goto_0
.line 335
:cond_0
invoke-virtual {p0}, Ljava/lang/String;->getBytes()[B
move-result-object p0
invoke-static {p0}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptSHA512ToString([B)Ljava/lang/String;
move-result-object p0
return-object p0
:cond_1
:goto_0
const-string p0, ""
return-object p0
.end method
.method public static encryptSHA512ToString([B)Ljava/lang/String;
.locals 0
.line 345
invoke-static {p0}, Lcom/blankj/utilcode/util/EncryptUtils;->encryptSHA512([B)[B
move-result-object p0
invoke-static {p0}, Lcom/blankj/utilcode/util/UtilsBridge;->bytes2HexString([B)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method static hashTemplate([BLjava/lang/String;)[B
.locals 2
const/4 v0, 0x0
if-eqz p0, :cond_1
.line 366
array-length v1, p0
if-gtz v1, :cond_0
goto :goto_0
.line 368
:cond_0
:try_start_0
invoke-static {p1}, Ljava/security/MessageDigest;->getInstance(Ljava/lang/String;)Ljava/security/MessageDigest;
move-result-object p1
.line 369
invoke-virtual {p1, p0}, Ljava/security/MessageDigest;->update([B)V
.line 370
invoke-virtual {p1}, Ljava/security/MessageDigest;->digest()[B
move-result-object p0
:try_end_0
.catch Ljava/security/NoSuchAlgorithmException; {:try_start_0 .. :try_end_0} :catch_0
return-object p0
:catch_0
move-exception p0
.line 372
invoke-virtual {p0}, Ljava/security/NoSuchAlgorithmException;->printStackTrace()V
:cond_1
:goto_0
return-object v0
.end method
.method private static hmacTemplate([B[BLjava/lang/String;)[B
.locals 2
const/4 v0, 0x0
if-eqz p0, :cond_1
.line 596
array-length v1, p0
if-eqz v1, :cond_1
if-eqz p1, :cond_1
array-length v1, p1
if-nez v1, :cond_0
goto :goto_1
.line 598
:cond_0
:try_start_0
new-instance v1, Ljavax/crypto/spec/SecretKeySpec;
invoke-direct {v1, p1, p2}, Ljavax/crypto/spec/SecretKeySpec;-><init>([BLjava/lang/String;)V
.line 599
invoke-static {p2}, Ljavax/crypto/Mac;->getInstance(Ljava/lang/String;)Ljavax/crypto/Mac;
move-result-object p1
.line 600
invoke-virtual {p1, v1}, Ljavax/crypto/Mac;->init(Ljava/security/Key;)V
.line 601
invoke-virtual {p1, p0}, Ljavax/crypto/Mac;->doFinal([B)[B
move-result-object p0
:try_end_0
.catch Ljava/security/InvalidKeyException; {:try_start_0 .. :try_end_0} :catch_1
.catch Ljava/security/NoSuchAlgorithmException; {:try_start_0 .. :try_end_0} :catch_0
return-object p0
:catch_0
move-exception p0
goto :goto_0
:catch_1
move-exception p0
.line 603
:goto_0
invoke-virtual {p0}, Ljava/security/GeneralSecurityException;->printStackTrace()V
:cond_1
:goto_1
return-object v0
.end method
.method private static joins([B[B)[B
.locals 3
.line 1179
array-length v0, p0
array-length v1, p1
add-int/2addr v0, v1
new-array v0, v0, [B
.line 1180
array-length v1, p0
const/4 v2, 0x0
invoke-static {p0, v2, v0, v2, v1}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 1181
array-length p0, p0
array-length v1, p1
invoke-static {p1, v2, v0, p0, v1}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
return-object v0
.end method
.method public static rc4([B[B)[B
.locals 8
if-eqz p0, :cond_5
.line 1143
array-length v0, p0
if-eqz v0, :cond_5
if-nez p1, :cond_0
goto :goto_3
.line 1144
:cond_0
array-length v0, p1
const/4 v1, 0x1
if-lt v0, v1, :cond_4
array-length v0, p1
const/16 v2, 0x100
if-gt v0, v2, :cond_4
new-array v0, v2, [B
new-array v3, v2, [B
.line 1149
array-length v4, p1
const/4 v5, 0x0
move v6, v5
:goto_0
if-ge v6, v2, :cond_1
int-to-byte v7, v6
.line 1151
aput-byte v7, v0, v6
.line 1152
rem-int v7, v6, v4
aget-byte v7, p1, v7
aput-byte v7, v3, v6
add-int/lit8 v6, v6, 0x1
goto :goto_0
:cond_1
move p1, v5
move v4, p1
:goto_1
if-ge p1, v2, :cond_2
.line 1157
aget-byte v6, v0, p1
add-int/2addr v4, v6
aget-byte v6, v3, p1
add-int/2addr v4, v6
and-int/lit16 v4, v4, 0xff
.line 1158
aget-byte v6, v0, v4
.line 1159
aget-byte v7, v0, p1
aput-byte v7, v0, v4
.line 1160
aput-byte v6, v0, p1
add-int/lit8 p1, p1, 0x1
goto :goto_1
.line 1163
:cond_2
array-length p1, p0
new-array p1, p1, [B
move v2, v5
.line 1165
:goto_2
array-length v3, p0
if-ge v5, v3, :cond_3
add-int/2addr v2, v1
and-int/lit16 v2, v2, 0xff
.line 1167
aget-byte v3, v0, v2
add-int/2addr v4, v3
and-int/lit16 v4, v4, 0xff
.line 1168
aget-byte v3, v0, v4
.line 1169
aget-byte v6, v0, v2
aput-byte v6, v0, v4
.line 1170
aput-byte v3, v0, v2
.line 1171
aget-byte v3, v0, v2
aget-byte v6, v0, v4
add-int/2addr v3, v6
and-int/lit16 v3, v3, 0xff
.line 1172
aget-byte v3, v0, v3
.line 1173
aget-byte v6, p0, v5
xor-int/2addr v3, v6
int-to-byte v3, v3
aput-byte v3, p1, v5
add-int/lit8 v5, v5, 0x1
goto :goto_2
:cond_3
return-object p1
.line 1145
:cond_4
new-instance p0, Ljava/lang/IllegalArgumentException;
const-string p1, "key must be between 1 and 256 bytes"
invoke-direct {p0, p1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw p0
:cond_5
:goto_3
const/4 p0, 0x0
return-object p0
.end method
.method private static rsaTemplate([B[BILjava/lang/String;Z)[B
.locals 7
const/4 v0, 0x0
if-eqz p0, :cond_9
.line 1081
array-length v1, p0
if-eqz v1, :cond_9
if-eqz p1, :cond_9
array-length v1, p1
if-nez v1, :cond_0
goto/16 :goto_4
.line 1087
:cond_0
:try_start_0
sget v1, Landroid/os/Build$VERSION;->SDK_INT:I
:try_end_0
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
const/16 v2, 0x1c
const-string v3, "RSA"
if-ge v1, v2, :cond_1
:try_start_1
const-string v1, "BC"
.line 1088
invoke-static {v3, v1}, Ljava/security/KeyFactory;->getInstance(Ljava/lang/String;Ljava/lang/String;)Ljava/security/KeyFactory;
move-result-object v1
goto :goto_0
.line 1090
:cond_1
invoke-static {v3}, Ljava/security/KeyFactory;->getInstance(Ljava/lang/String;)Ljava/security/KeyFactory;
move-result-object v1
:goto_0
if-eqz p4, :cond_2
.line 1093
new-instance v2, Ljava/security/spec/X509EncodedKeySpec;
invoke-direct {v2, p1}, Ljava/security/spec/X509EncodedKeySpec;-><init>([B)V
.line 1094
invoke-virtual {v1, v2}, Ljava/security/KeyFactory;->generatePublic(Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;
move-result-object p1
goto :goto_1
.line 1096
:cond_2
new-instance v2, Ljava/security/spec/PKCS8EncodedKeySpec;
invoke-direct {v2, p1}, Ljava/security/spec/PKCS8EncodedKeySpec;-><init>([B)V
.line 1097
invoke-virtual {v1, v2}, Ljava/security/KeyFactory;->generatePrivate(Ljava/security/spec/KeySpec;)Ljava/security/PrivateKey;
move-result-object p1
:goto_1
if-nez p1, :cond_3
return-object v0
.line 1100
:cond_3
invoke-static {p3}, Ljavax/crypto/Cipher;->getInstance(Ljava/lang/String;)Ljavax/crypto/Cipher;
move-result-object v1
if-eqz p4, :cond_4
const/4 v2, 0x1
goto :goto_2
:cond_4
const/4 v2, 0x2
.line 1101
:goto_2
invoke-virtual {v1, v2, p1}, Ljavax/crypto/Cipher;->init(ILjava/security/Key;)V
.line 1102
array-length p1, p0
.line 1103
div-int/lit8 p2, p2, 0x8
if-eqz p4, :cond_5
.line 1105
invoke-virtual {p3}, Ljava/lang/String;->toLowerCase()Ljava/lang/String;
move-result-object p3
const-string p4, "pkcs1padding"
.line 1106
invoke-virtual {p3, p4}, Ljava/lang/String;->endsWith(Ljava/lang/String;)Z
move-result p3
if-eqz p3, :cond_5
add-int/lit8 p2, p2, -0xb
.line 1110
:cond_5
div-int p3, p1, p2
if-lez p3, :cond_8
const/4 p4, 0x0
new-array v2, p4, [B
.line 1113
new-array v3, p2, [B
move v4, p4
move v5, v4
:goto_3
if-ge v4, p3, :cond_6
.line 1116
invoke-static {p0, v5, v3, p4, p2}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 1117
invoke-virtual {v1, v3}, Ljavax/crypto/Cipher;->doFinal([B)[B
move-result-object v6
invoke-static {v2, v6}, Lcom/blankj/utilcode/util/EncryptUtils;->joins([B[B)[B
move-result-object v2
add-int/2addr v5, p2
add-int/lit8 v4, v4, 0x1
goto :goto_3
:cond_6
if-eq v5, p1, :cond_7
sub-int/2addr p1, v5
.line 1122
new-array p2, p1, [B
.line 1123
invoke-static {p0, v5, p2, p4, p1}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 1124
invoke-virtual {v1, p2}, Ljavax/crypto/Cipher;->doFinal([B)[B
move-result-object p0
invoke-static {v2, p0}, Lcom/blankj/utilcode/util/EncryptUtils;->joins([B[B)[B
move-result-object v2
:cond_7
return-object v2
.line 1128
:cond_8
invoke-virtual {v1, p0}, Ljavax/crypto/Cipher;->doFinal([B)[B
move-result-object p0
:try_end_1
.catch Ljava/lang/Exception; {:try_start_1 .. :try_end_1} :catch_0
return-object p0
:catch_0
move-exception p0
.line 1131
invoke-virtual {p0}, Ljava/lang/Exception;->printStackTrace()V
:cond_9
:goto_4
return-object v0
.end method
.method private static symmetricTemplate([B[BLjava/lang/String;Ljava/lang/String;[BZ)[B
.locals 3
const/4 v0, 0x0
if-eqz p0, :cond_6
.line 942
array-length v1, p0
if-eqz v1, :cond_6
if-eqz p1, :cond_6
array-length v1, p1
if-nez v1, :cond_0
goto :goto_5
:cond_0
:try_start_0
const-string v1, "DES"
.line 945
invoke-virtual {v1, p2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_1
.line 946
new-instance v1, Ljavax/crypto/spec/DESKeySpec;
invoke-direct {v1, p1}, Ljavax/crypto/spec/DESKeySpec;-><init>([B)V
.line 947
invoke-static {p2}, Ljavax/crypto/SecretKeyFactory;->getInstance(Ljava/lang/String;)Ljavax/crypto/SecretKeyFactory;
move-result-object p1
.line 948
invoke-virtual {p1, v1}, Ljavax/crypto/SecretKeyFactory;->generateSecret(Ljava/security/spec/KeySpec;)Ljavax/crypto/SecretKey;
move-result-object p1
goto :goto_0
.line 950
:cond_1
new-instance v1, Ljavax/crypto/spec/SecretKeySpec;
invoke-direct {v1, p1, p2}, Ljavax/crypto/spec/SecretKeySpec;-><init>([BLjava/lang/String;)V
move-object p1, v1
.line 952
:goto_0
invoke-static {p3}, Ljavax/crypto/Cipher;->getInstance(Ljava/lang/String;)Ljavax/crypto/Cipher;
move-result-object p2
const/4 p3, 0x1
const/4 v1, 0x2
if-eqz p4, :cond_4
.line 953
array-length v2, p4
if-nez v2, :cond_2
goto :goto_2
.line 956
:cond_2
new-instance v2, Ljavax/crypto/spec/IvParameterSpec;
invoke-direct {v2, p4}, Ljavax/crypto/spec/IvParameterSpec;-><init>([B)V
if-eqz p5, :cond_3
goto :goto_1
:cond_3
move p3, v1
.line 957
:goto_1
invoke-virtual {p2, p3, p1, v2}, Ljavax/crypto/Cipher;->init(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V
goto :goto_4
:cond_4
:goto_2
if-eqz p5, :cond_5
goto :goto_3
:cond_5
move p3, v1
.line 954
:goto_3
invoke-virtual {p2, p3, p1}, Ljavax/crypto/Cipher;->init(ILjava/security/Key;)V
.line 959
:goto_4
invoke-virtual {p2, p0}, Ljavax/crypto/Cipher;->doFinal([B)[B
move-result-object p0
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
return-object p0
:catchall_0
move-exception p0
.line 961
invoke-virtual {p0}, Ljava/lang/Throwable;->printStackTrace()V
:cond_6
:goto_5
return-object v0
.end method