マイクロチャネルの暗号化と復号化アプレットC#と空白を埋める、削除することはできません間違った解決策のパディングは無効であり、削除することはできません

暗号化されたソースコードを解読

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

おすすめ

転載: www.cnblogs.com/microestc/p/11828654.html