<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Java、C#雙語版配套AES加解密示例

        這年頭找個正經能用的東西那是真難,網上一搜索一大堆,正經能用的沒幾個,得,最后還是得靠自己,正巧遇上需要AES加解密的地方了,而且還是Java和C#間的相互加解密操作,這里做個備忘

        這里采用的加解密使用base64轉碼方法,ECB模式,PKCS5Padding填充,密碼必須是16位,否則會報錯哈

        模式:Java的ECB對應C#的System.Security.Cryptography.CipherMode.ECB

        填充方法:Java的PKCS5Padding對應C#System.Security.Cryptography.PaddingMode.PKCS7

        Java和C#版的加解密是互通的,也就是能相互加解密,編碼明確指定了采用UTF-8,有需要其他編碼方法的請自行擴展

      Java版

      package nb.tmall.util;
      
      import java.security.NoSuchAlgorithmException;
      import java.security.SecureRandom;
      
      import javax.crypto.*;
      import javax.crypto.spec.SecretKeySpec;
      
      import sun.misc.*;
      
      @SuppressWarnings("restriction")
      public class EncryptUtil {
      
          public static String aesEncrypt(String str, String key) throws Exception {
              if (str == null || key == null) return null;
              Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
              cipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(key.getBytes("utf-8"), "AES"));
              byte[] bytes = cipher.doFinal(str.getBytes("utf-8"));
              return new BASE64Encoder().encode(bytes);
          }
      
          public static String aesDecrypt(String str, String key) throws Exception {
              if (str == null || key == null) return null;
              Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
              cipher.init(Cipher.DECRYPT_MODE, new SecretKeySpec(key.getBytes("utf-8"), "AES"));
              byte[] bytes = new BASE64Decoder().decodeBuffer(str);
              bytes = cipher.doFinal(bytes);
              return new String(bytes, "utf-8");
          }
      }

      C#版

      using System;
      using System.Security.Cryptography;
      using System.Text;
      
      namespace CSharp.Util.Security
      {
         
              /// <summary>
              ///  AES 加密
              /// </summary>
              /// <param name="str"></param>
              /// <param name="key"></param>
              /// <returns></returns>
              public static string AesEncrypt(string str, string key)
              {
                  if (string.IsNullOrEmpty(str)) return null;
                  Byte[] toEncryptArray = Encoding.UTF8.GetBytes(str);
      
                  System.Security.Cryptography.RijndaelManaged rm = new System.Security.Cryptography.RijndaelManaged
                  {
                      Key = Encoding.UTF8.GetBytes(key),
                      Mode = System.Security.Cryptography.CipherMode.ECB,
                      Padding = System.Security.Cryptography.PaddingMode.PKCS7
                  };
      
                  System.Security.Cryptography.ICryptoTransform cTransform = rm.CreateEncryptor();
                  Byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
      
                  return Convert.ToBase64String(resultArray, 0, resultArray.Length);
              }
      
              /// <summary>
              ///  AES 解密
              /// </summary>
              /// <param name="str"></param>
              /// <param name="key"></param>
              /// <returns></returns>
              public static string AesDecrypt(string str, string key)
              {
                  if (string.IsNullOrEmpty(str)) return null;
                  Byte[] toEncryptArray = Convert.FromBase64String(str);
      
                  System.Security.Cryptography.RijndaelManaged rm = new System.Security.Cryptography.RijndaelManaged
                  {
                      Key = Encoding.UTF8.GetBytes(key),
                      Mode = System.Security.Cryptography.CipherMode.ECB,
                      Padding = System.Security.Cryptography.PaddingMode.PKCS7
                  };
      
                  System.Security.Cryptography.ICryptoTransform cTransform = rm.CreateDecryptor();
                  Byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
      
                  return Encoding.UTF8.GetString(resultArray);
              }
          }
      }

       

       

      posted @ 2014-04-01 23:12  懶惰的肥兔  閱讀(29575)  評論(10)    收藏  舉報
      主站蜘蛛池模板: 久久亚洲精品国产精品尤物 | 99久久亚洲综合精品成人网| 午夜欧美日韩在线视频播放| 精品国产成人午夜福利| 亚洲中文字幕乱码一区| 丁香婷婷在线视频| 亚洲 日本 欧洲 欧美 视频| 99久久国产综合精品色| 亚洲人成在久久综合网站| 中文字幕亚洲综合久久| 成人免费乱码大片a毛片| 无遮挡又黄又刺激的视频| 精品国产午夜理论片不卡| 中文字幕人妻色偷偷久久| 99久久综合精品五月天| 悠悠色成人综合在线观看| 国产卡一卡二卡三免费入口| 国产一国产看免费高清片| 国产白丝无码免费视频| 精品在线观看视频二区| 沈阳市| 亚洲国产高清aⅴ视频| 精品国产迷系列在线观看| 奇米四色7777中文字幕| 国产精品人成视频免费播放| 国产综合色在线精品| 久久精品国产福利一区二区| 文水县| 国内精品免费久久久久电影院97| 欧美日韩视频综合一区无弹窗| 欧美日本在线一区二区三区| 激情一区二区三区成人文| 国内精品大秀视频日韩精品| 亚洲精品三区四区成人少| 少妇被黑人到高潮喷出白浆| 海门市| 亚洲国产欧美一区二区好看电影| 秋霞av鲁丝片一区二区| 少妇熟女视频一区二区三区| 久热这里只有精品12| 蒲江县|