Coder.smali
.class public Lsg/bigo/sdk/blivestat/utils/Coder;
.super Ljava/lang/Object;
.source "SourceFile"
# static fields
.field private static final CHARSET:Ljava/lang/String; = "UTF-8"
.field private static final HEX_ARRAY:[C
.field private static final KEY_DES:Ljava/lang/String; = "DES"
.field private static final KEY_MD5:Ljava/lang/String; = "MD5"
.field private static final KEY_SHA:Ljava/lang/String; = "SHA"
# direct methods
.method static constructor <clinit>()V
.registers 1
const-string v0, "0123456789ABCDEF"
.line 226
invoke-virtual {v0}, Ljava/lang/String;->toCharArray()[C
move-result-object v0
sput-object v0, Lsg/bigo/sdk/blivestat/utils/Coder;->HEX_ARRAY:[C
return-void
.end method
.method public constructor <init>()V
.registers 1
.line 17
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static StringToBytes(Ljava/lang/String;)[B
.registers 2
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/UnsupportedEncodingException;
}
.end annotation
const-string v0, "UTF-8"
.line 223
invoke-virtual {p0, v0}, Ljava/lang/String;->getBytes(Ljava/lang/String;)[B
move-result-object p0
return-object p0
.end method
.method public static bytesToHex([B)Ljava/lang/String;
.registers 7
if-nez p0, :cond_5
const-string p0, ""
return-object p0
.line 235
:cond_5
array-length v0, p0
mul-int/lit8 v0, v0, 0x2
new-array v0, v0, [C
const/4 v1, 0x0
.line 236
:goto_b
array-length v2, p0
if-ge v1, v2, :cond_27
.line 237
aget-byte v2, p0, v1
and-int/lit16 v2, v2, 0xff
mul-int/lit8 v3, v1, 0x2
.line 238
sget-object v4, Lsg/bigo/sdk/blivestat/utils/Coder;->HEX_ARRAY:[C
ushr-int/lit8 v5, v2, 0x4
aget-char v5, v4, v5
aput-char v5, v0, v3
add-int/lit8 v3, v3, 0x1
and-int/lit8 v2, v2, 0xf
.line 239
aget-char v2, v4, v2
aput-char v2, v0, v3
add-int/lit8 v1, v1, 0x1
goto :goto_b
.line 241
:cond_27
new-instance p0, Ljava/lang/String;
invoke-direct {p0, v0}, Ljava/lang/String;-><init>([C)V
return-object p0
.end method
.method public static bytesToHexString([B)Ljava/lang/String;
.registers 5
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/UnsupportedEncodingException;
}
.end annotation
.line 167
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
if-eqz p0, :cond_22
const/4 v1, 0x0
.line 169
:goto_8
array-length v2, p0
if-ge v1, v2, :cond_22
.line 170
aget-byte v2, p0, v1
and-int/lit16 v2, v2, 0xff
add-int/lit16 v2, v2, 0x100
const/16 v3, 0x10
invoke-static {v2, v3}, Ljava/lang/Integer;->toString(II)Ljava/lang/String;
move-result-object v2
const/4 v3, 0x1
invoke-virtual {v2, v3}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object v2
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
add-int/lit8 v1, v1, 0x1
goto :goto_8
.line 173
:cond_22
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static bytesToString([B)Ljava/lang/String;
.registers 3
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/UnsupportedEncodingException;
}
.end annotation
.line 212
new-instance v0, Ljava/lang/String;
const-string v1, "UTF-8"
invoke-direct {v0, p0, v1}, Ljava/lang/String;-><init>([BLjava/lang/String;)V
return-object v0
.end method
.method public static decryptBASE64(Ljava/lang/String;)Ljava/lang/String;
.registers 1
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Exception;
}
.end annotation
.line 32
invoke-static {p0}, Lsg/bigo/sdk/blivestat/utils/Base64Util;->decode(Ljava/lang/String;)[B
move-result-object p0
invoke-static {p0}, Lsg/bigo/sdk/blivestat/utils/Coder;->bytesToString([B)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static decryptDES(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
.registers 2
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;,
Ljava/lang/Exception;
}
.end annotation
if-nez p0, :cond_4
const/4 p0, 0x0
return-object p0
.line 98
:cond_4
invoke-static {p0}, Lsg/bigo/sdk/blivestat/utils/Base64Util;->decode(Ljava/lang/String;)[B
move-result-object p0
.line 99
invoke-static {p1}, Lsg/bigo/sdk/blivestat/utils/Coder;->StringToBytes(Ljava/lang/String;)[B
move-result-object p1
invoke-static {p0, p1}, Lsg/bigo/sdk/blivestat/utils/Coder;->decryptDES([B[B)[B
move-result-object p0
.line 100
invoke-static {p0}, Lsg/bigo/sdk/blivestat/utils/Coder;->bytesToString([B)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static decryptDES([B[B)[B
.registers 5
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Exception;
}
.end annotation
.line 142
new-instance v0, Ljava/security/SecureRandom;
invoke-direct {v0}, Ljava/security/SecureRandom;-><init>()V
.line 145
new-instance v1, Ljavax/crypto/spec/DESKeySpec;
invoke-direct {v1, p1}, Ljavax/crypto/spec/DESKeySpec;-><init>([B)V
const-string p1, "DES"
.line 148
invoke-static {p1}, Ljavax/crypto/SecretKeyFactory;->getInstance(Ljava/lang/String;)Ljavax/crypto/SecretKeyFactory;
move-result-object v2
.line 149
invoke-virtual {v2, v1}, Ljavax/crypto/SecretKeyFactory;->generateSecret(Ljava/security/spec/KeySpec;)Ljavax/crypto/SecretKey;
move-result-object v1
.line 152
invoke-static {p1}, Ljavax/crypto/Cipher;->getInstance(Ljava/lang/String;)Ljavax/crypto/Cipher;
move-result-object p1
const/4 v2, 0x2
.line 155
invoke-virtual {p1, v2, v1, v0}, Ljavax/crypto/Cipher;->init(ILjava/security/Key;Ljava/security/SecureRandom;)V
.line 157
invoke-virtual {p1, p0}, Ljavax/crypto/Cipher;->doFinal([B)[B
move-result-object p0
return-object p0
.end method
.method public static encryptBASE64(Ljava/lang/String;)Ljava/lang/String;
.registers 1
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Exception;
}
.end annotation
.line 43
invoke-static {p0}, Lsg/bigo/sdk/blivestat/utils/Coder;->StringToBytes(Ljava/lang/String;)[B
move-result-object p0
invoke-static {p0}, Lsg/bigo/sdk/blivestat/utils/Base64Util;->encode([B)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static encryptDES(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
.registers 2
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Exception;
}
.end annotation
.line 80
invoke-static {p0}, Lsg/bigo/sdk/blivestat/utils/Coder;->StringToBytes(Ljava/lang/String;)[B
move-result-object p0
invoke-static {p1}, Lsg/bigo/sdk/blivestat/utils/Coder;->StringToBytes(Ljava/lang/String;)[B
move-result-object p1
invoke-static {p0, p1}, Lsg/bigo/sdk/blivestat/utils/Coder;->encryptDES([B[B)[B
move-result-object p0
.line 81
invoke-static {p0}, Lsg/bigo/sdk/blivestat/utils/Base64Util;->encode([B)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static encryptDES([B[B)[B
.registers 5
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Exception;
}
.end annotation
.line 113
new-instance v0, Ljava/security/SecureRandom;
invoke-direct {v0}, Ljava/security/SecureRandom;-><init>()V
.line 116
new-instance v1, Ljavax/crypto/spec/DESKeySpec;
invoke-direct {v1, p1}, Ljavax/crypto/spec/DESKeySpec;-><init>([B)V
const-string p1, "DES"
.line 119
invoke-static {p1}, Ljavax/crypto/SecretKeyFactory;->getInstance(Ljava/lang/String;)Ljavax/crypto/SecretKeyFactory;
move-result-object v2
.line 120
invoke-virtual {v2, v1}, Ljavax/crypto/SecretKeyFactory;->generateSecret(Ljava/security/spec/KeySpec;)Ljavax/crypto/SecretKey;
move-result-object v1
.line 123
invoke-static {p1}, Ljavax/crypto/Cipher;->getInstance(Ljava/lang/String;)Ljavax/crypto/Cipher;
move-result-object p1
const/4 v2, 0x1
.line 126
invoke-virtual {p1, v2, v1, v0}, Ljavax/crypto/Cipher;->init(ILjava/security/Key;Ljava/security/SecureRandom;)V
.line 128
invoke-virtual {p1, p0}, Ljavax/crypto/Cipher;->doFinal([B)[B
move-result-object p0
return-object p0
.end method
.method public static encryptMD5(Ljava/lang/String;)Ljava/lang/String;
.registers 2
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Exception;
}
.end annotation
const-string v0, "MD5"
.line 54
invoke-static {v0}, Ljava/security/MessageDigest;->getInstance(Ljava/lang/String;)Ljava/security/MessageDigest;
move-result-object v0
.line 55
invoke-static {p0}, Lsg/bigo/sdk/blivestat/utils/Coder;->StringToBytes(Ljava/lang/String;)[B
move-result-object p0
invoke-virtual {v0, p0}, Ljava/security/MessageDigest;->digest([B)[B
move-result-object p0
invoke-static {p0}, Lsg/bigo/sdk/blivestat/utils/Coder;->bytesToHexString([B)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static encryptSHA(Ljava/lang/String;)Ljava/lang/String;
.registers 2
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Exception;
}
.end annotation
const-string v0, "SHA"
.line 66
invoke-static {v0}, Ljava/security/MessageDigest;->getInstance(Ljava/lang/String;)Ljava/security/MessageDigest;
move-result-object v0
.line 67
invoke-static {p0}, Lsg/bigo/sdk/blivestat/utils/Coder;->StringToBytes(Ljava/lang/String;)[B
move-result-object p0
invoke-virtual {v0, p0}, Ljava/security/MessageDigest;->update([B)V
.line 68
invoke-virtual {v0}, Ljava/security/MessageDigest;->digest()[B
move-result-object p0
invoke-static {p0}, Lsg/bigo/sdk/blivestat/utils/Coder;->bytesToHexString([B)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static hexStringToBytes(Ljava/lang/String;)[B
.registers 7
.line 183
invoke-virtual {p0}, Ljava/lang/String;->toCharArray()[C
move-result-object p0
.line 185
array-length v0, p0
div-int/lit8 v0, v0, 0x2
.line 186
new-array v1, v0, [B
const/4 v2, 0x0
:goto_a
if-ge v2, v0, :cond_2d
mul-int/lit8 v3, v2, 0x2
.line 189
aget-char v4, p0, v3
const/16 v5, 0x10
invoke-static {v4, v5}, Ljava/lang/Character;->digit(CI)I
move-result v4
add-int/lit8 v3, v3, 0x1
.line 190
aget-char v3, p0, v3
invoke-static {v3, v5}, Ljava/lang/Character;->digit(CI)I
move-result v3
shl-int/lit8 v4, v4, 0x4
or-int/2addr v3, v4
const/16 v4, 0x7f
if-le v3, v4, :cond_27
add-int/lit16 v3, v3, -0x100
:cond_27
int-to-byte v3, v3
.line 199
aput-byte v3, v1, v2
add-int/lit8 v2, v2, 0x1
goto :goto_a
:cond_2d
return-object v1
.end method