暗号化されたソースコードを解読
1 使用してシステムを。 2 使用System.Security.Cryptographyと、 3 使用System.Textのを。 4 5 名前空間微信 6 { 7 パブリック 静的 クラスセキュリティ 8 { 9 パブリック 静的 文字列復号化(文字列キー、文字列 IV、文字列データ) 10 { 11 VAR rgbKey = Convert.FromBase64String(キー)。 12 VAR rgbIV =(IV)Convert.FromBase64String。 13 VARバイト= Convert.FromBase64String(データ)。 14 15 トライ 16 { 17 使用 VAR =管理新しいAesManagedを() 18 { 19 MODE = CipherMode.CBC、 20 BlockSizeに= 128 、 21 パディング= PaddingMode.PKCS7 22 }。 23 使用 するvar復号を= managed.CreateDecryptor(rgbKey、rgbIV)。 24 VAR最終= decryptor.TransformFinalBlock(バイト0 、bytes.Length)。 25 リターンEncoding.UTF8.GetString(最終)。 26 } 27 キャッチ 28 { 29 リターン ヌル。 30 } 31 } 32 33 パブリック 静的 文字列を暗号化(文字列キー、文字列 IV、文字列データ) 34 { 35 VAR rgbKey = Convert.FromBase64String(キー)。 36 VARrgbIV = Convert.FromBase64String(IV)。 37 VARバイト= Encoding.UTF8.GetBytes(データ)。 38 39 トライ 40 { 41 使用 VAR =管理新しいAesManagedを() 42 { 43 MODE = CipherMode.CBC、 44 BlockSizeに= 128 、 45 パディング= PaddingMode.PKCS7 46 }。 47 使用 するvar暗号化を= managed.CreateEncryptor(rgbKey、rgbIV)。 48 VAR最終= encryptor.TransformFinalBlock(バイト0 、bytes.Length)。 49 リターンConvert.ToBase64String(最終); 50 } 51 キャッチ 52 { 53 リターン ヌル。 54 } 55 } 56 } 57 }
第二に、なぜ最初の時間または断続的な復号化の失敗についての話?
マイクロ手紙アプレットコードボタンは、私が始めたクリック - > GET IV、はEncryptedData - > wx.login - >コードを取得 - >コード、IV、はEncryptedData送信サーバー - >その後、コード解読SESSION_KEY取得、
問題は、所定の位置にボタンをクリックし、その後で、無wx.login GETコード際に、IVとはEncryptedDataはSESSION_KEYを存在していた、とSESSION_KEY後のgetは、異なる場合
そう
最初のコードまたは使用wx.login SESSION_KEYを取得する必要があり、「情報を見る」ボタンをクリックする前に、その後のonload内部ので、ボタンをクリックするか、onshowコードまたはSESSION_KEYを取得する必要がありますwx.login