RSA/ECB/PKCS1Padding init Key Hex: 30819f300d06092a864886f70d010101050003818d00308189028181009585a4773abeecb949701d49762f2dfab9599ba19dfe1e1a2fa200e32e0444f426da528912d9ea8669515f6f1014c454e1343b97abf7c10fe49d520a6999c66b230e0730c3f802d136a892501ff2b13d699b5c7ecbbfef428ac36d3d83a5bd627f18746a7fdc774c12a38de2760a3b95c653c10d7eb7f84722976251f649556b0203010001 RSA/ECB/PKCS1Padding init Key Base64: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCVhaR3Or7suUlwHUl2Ly36uVmboZ3+HhovogDjLgRE9CbaUokS2eqGaVFfbxAUxFThNDuXq/fBD+SdUgppmcZrIw4HMMP4AtE2qJJQH/KxPWmbXH7Lv+9CisNtPYOlvWJ/GHRqf9x3TBKjjeJ2CjuVxlPBDX63+Ecil2JR9klVawIDAQAB ======================================================= Cipher.init('int', 'java.security.Key', 'java.security.SecureRandom') is called! java.lang.Throwable at javax.crypto.Cipher.init(Native Method) at javax.crypto.Cipher.init(Cipher.java:1084) at javax.crypto.Cipher.init(Native Method) at com.ximalaya.ting.android.loginservice.LoginEncryptUtil.PDuxkguhSq(Native Method) at com.ximalaya.ting.android.loginservice.LoginEncryptUtil.encryptByPublicKeyNative(SourceFile:43) at com.ximalaya.ting.android.loginservice.LoginHelper.encryPsw(SourceFile:12) at com.ximalaya.ting.android.loginservice.LoginRequest.loginByPsw(SourceFile:304) at com.ximalaya.ting.android.loginservice.LoginService.login(SourceFile:92) at com.ximalaya.ting.android.loginservice.LoginService.loginWithPswd(SourceFile:52) at com.ximalaya.ting.android.login.fragment.BaseLoginFragment.doLoginWithXMLY(SourceFile:347) at com.ximalaya.ting.android.login.fragment.LoginFragment.a(SourceFile:697) at com.ximalaya.ting.android.login.fragment.n.run(SourceFile:1) at org.aspectj.a.b.h.a(SourceFile:229) at com.ximalaya.commonaspectj.f.b(SourceFile:85) at com.ximalaya.commonaspectj.f.a(SourceFile:1) at com.ximalaya.commonaspectj.f.a(SourceFile:24) at com.ximalaya.ting.android.login.fragment.LoginFragment.onClick(SourceFile:587) at android.view.View.performClick(View.java:7140) at android.view.View.performClickInternal(View.java:7117) at android.view.View.access$3500(View.java:801) at android.view.View$PerformClick.run(View.java:27351) at android.os.Handler.handleCallback(Handler.java:883) at android.os.Handler.dispatchMessage(Handler.java:100) at android.os.Looper.loop(Looper.java:214) at com.ximalaya.ting.android.framework.c$1.run(SourceFile:107) at android.os.Handler.handleCallback(Handler.java:883) at android.os.Handler.dispatchMessage(Handler.java:100) at android.os.Looper.loop(Looper.java:214) at android.app.ActivityThread.main(ActivityThread.java:7356) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
Cipher.doFinal('[B', 'int', 'int') is called! java.lang.Throwable at javax.crypto.Cipher.doFinal(Native Method) at com.ximalaya.ting.android.loginservice.LoginEncryptUtil.PDuxkguhSq(Native Method) at com.ximalaya.ting.android.loginservice.LoginEncryptUtil.encryptByPublicKeyNative(SourceFile:43) at com.ximalaya.ting.android.loginservice.LoginHelper.encryPsw(SourceFile:12) at com.ximalaya.ting.android.loginservice.LoginRequest.loginByPsw(SourceFile:304) at com.ximalaya.ting.android.loginservice.LoginService.login(SourceFile:92) at com.ximalaya.ting.android.loginservice.LoginService.loginWithPswd(SourceFile:52) at com.ximalaya.ting.android.login.fragment.BaseLoginFragment.doLoginWithXMLY(SourceFile:347) at com.ximalaya.ting.android.login.fragment.LoginFragment.a(SourceFile:697) at com.ximalaya.ting.android.login.fragment.n.run(SourceFile:1) at org.aspectj.a.b.h.a(SourceFile:229) at com.ximalaya.commonaspectj.f.b(SourceFile:85) at com.ximalaya.commonaspectj.f.a(SourceFile:1) at com.ximalaya.commonaspectj.f.a(SourceFile:24) at com.ximalaya.ting.android.login.fragment.LoginFragment.onClick(SourceFile:587) at android.view.View.performClick(View.java:7140) at android.view.View.performClickInternal(View.java:7117) at android.view.View.access$3500(View.java:801) at android.view.View$PerformClick.run(View.java:27351) at android.os.Handler.handleCallback(Handler.java:883) at android.os.Handler.dispatchMessage(Handler.java:100) at android.os.Looper.loop(Looper.java:214) at com.ximalaya.ting.android.framework.c$1.run(SourceFile:107) at android.os.Handler.handleCallback(Handler.java:883) at android.os.Handler.dispatchMessage(Handler.java:100) at android.os.Looper.loop(Looper.java:214) at android.app.ActivityThread.main(ActivityThread.java:7356) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
RSA/ECB/PKCS1Padding doFinal data Utf8: 123456 RSA/ECB/PKCS1Padding doFinal data Hex: 313233343536 RSA/ECB/PKCS1Padding doFinal data Base64: MTIzNDU2 RSA/ECB/PKCS1Padding doFinal result Hex: 468ca03edf30d90f28ba7cf1e4bece58ae3fce44419a554cd61890d61d669f8b1a4f868505ad6e515c145e81e731437fbf0682e954c00999a1b0a4c5269f532a16df23c3ffce1ab5a1ee3762d70ff9349de5f1d20ad1e2cc9edb8bbeb9ad169700a493e1b99f6c48cac3a999a15d42f0e2d5bfd598c0767c4ab03d465a8a8597 RSA/ECB/PKCS1Padding doFinal result Base64: RoygPt8w2Q8ounzx5L7OWK4/zkRBmlVM1hiQ1h1mn4saT4aFBa1uUVwUXoHnMUN/vwaC6VTACZmhsKTFJp9TKhbfI8P/zhq1oe43YtcP+TSd5fHSCtHizJ7bi765rRaXAKST4bmfbEjKw6mZoV1C8OLVv9WYwHZ8SrA9RlqKhZc=
算法这里不是做这个app的重点
先看函数栈
at javax.crypto.Cipher.doFinal(Native Method)
at com.ximalaya.ting.android.loginservice.LoginEncryptUtil.PDuxkguhSq(Native Method)
int __fastcall Java_com_ximalaya_ting_android_loginservice_LoginEncryptUtil_PDuxkguhSq(int a1, int a2, int a3) { __int64 v5; // r0 int v6; // r6 int v7; // r4
C:\Users\Administrator>jnitrace -m attach -l liblogin_encrypt.so com.ximalaya.ting.android Tracing. Press any key to quit... Traced library "liblogin_encrypt.so" loaded from path "/data/app/com.ximalaya.ting.android-Q_vQ9K708see9mNcQzYjCw==/lib/arm".
/* TID 13380 */ 1746 ms [+] JNIEnv->NewStringUTF 1746 ms |- JNIEnv* : 0xe8519140 1746 ms |- char* : 0xae42c870 1746 ms |: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCVhaR3Or7suUlwHUl2Ly36uVmboZ3+HhovogDjLgRE9CbaUokS2eqGaVFfbxAUxFThNDuXq/fBD+SdUgppmcZrIw4HMMP4AtE2qJJQH/KxPWmbXH7Lv+9CisNtPYOlvWJ/GHRqf9x3TBKjjeJ2CjuVxlPBDX63+Ecil2JR9klVawIDAQAB 1746 ms |= jstring : 0x71 { MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCVhaR3Or7suUlwHUl2Ly36uVmboZ3+HhovogDjLgRE9CbaUokS2eqGaVFfbxAUxFThNDuXq/fBD+SdUgppmcZrIw4HMMP4AtE2qJJQH/KxPWmbXH7Lv+9CisNtPYOlvWJ/GHRqf9x3TBKjjeJ2CjuVxlPBDX63+Ecil2JR9klVawIDAQAB }
1746 ms ----------------------------------------------------------Backtrace---------------------------------------------------------- 1746 ms |-> 0xae4230df: Java_com_ximalaya_ting_android_loginservice_LoginEncryptUtil_PDuxkguhSq+0x1a (liblogin_encrypt.so:0xae41f000)
/* TID 13380 */ 2183 ms [+] JNIEnv->NewStringUTF 2183 ms |- JNIEnv* : 0xe8519140 2183 ms |- char* : 0xae42c055 2183 ms |: RSA 2183 ms |= jstring : 0x81 { RSA }
2183 ms ---------------------------------Backtrace--------------------------------- 2183 ms |-> 0xae41fb93: liblogin_encrypt.so!0xb93 (liblogin_encrypt.so:0xae41f000)
/* TID 13380 */ 2196 ms [+] JNIEnv->FindClass 2196 ms |- JNIEnv* : 0xe8519140 2196 ms |- char* : 0xae42c060 2196 ms |: java/security/KeyFactory 2196 ms |= jclass : 0x91 { java/security/KeyFactory }
2196 ms ---------------------------------Backtrace--------------------------------- 2196 ms |-> 0xae41fba5: liblogin_encrypt.so!0xba5 (liblogin_encrypt.so:0xae41f000)
/* TID 13380 */ 2208 ms [+] JNIEnv->GetStaticMethodID 2208 ms |- JNIEnv* : 0xe8519140 2208 ms |- jclass : 0x91 { java/security/KeyFactory } 2208 ms |- char* : 0xae42c079 2208 ms |: getInstance 2208 ms |- char* : 0xae42c090 2208 ms |: (Ljava/lang/String;)Ljava/security/KeyFactory; 2208 ms |= jmethodID : 0x7084aae8 { getInstance(Ljava/lang/String;)Ljava/security/KeyFactory; }
2208 ms ---------------------------------Backtrace--------------------------------- 2208 ms |-> 0xae41fbc1: liblogin_encrypt.so!0xbc1 (liblogin_encrypt.so:0xae41f000)