AESHelper

public static class AESHelper
{
    /// <summary>
    /// 默认密钥-密钥的长度必须是32
    /// </summary>
    private const string PublicKey = "1234567890123456";

    /// <summary>
    /// 默认向量
    /// </summary>
    private const string Iv = "abcdefghijklmnop";
    /// <summary>  
    /// AES加密  
    /// </summary>  
    /// <param name="str">需要加密字符串</param>  
    /// <returns>加密后字符串</returns>  
    public static String Encrypt(string str)
    {
        return Encrypt(str, PublicKey);
    }

    /// <summary>  
    /// AES解密  
    /// </summary>  
    /// <param name="str">需要解密字符串</param>  
    /// <returns>解密后字符串</returns>  
    public static String Decrypt(string str)
    {
        return Decrypt(str, PublicKey);
    }
    /// <summary>
    /// AES加密
    /// </summary>
    /// <param name="str">需要加密的字符串</param>
    /// <param name="key">32位密钥</param>
    /// <returns>加密后的字符串</returns>
    public static string Encrypt(string str, string key)
    {
        Byte[] keyArray = System.Text.Encoding.UTF8.GetBytes(key);
        Byte[] toEncryptArray = System.Text.Encoding.UTF8.GetBytes(str);
        var rijndael = new System.Security.Cryptography.RijndaelManaged();
        rijndael.Key = keyArray;
        rijndael.Mode = System.Security.Cryptography.CipherMode.ECB;
        rijndael.Padding = System.Security.Cryptography.PaddingMode.PKCS7;
        rijndael.IV = System.Text.Encoding.UTF8.GetBytes(Iv);
        System.Security.Cryptography.ICryptoTransform cTransform = rijndael.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">32位密钥</param>
    /// <returns>解密后的字符串</returns>
    public static string Decrypt(string str, string key)
    {
        Byte[] keyArray = System.Text.Encoding.UTF8.GetBytes(key);
        Byte[] toEncryptArray = Convert.FromBase64String(str);
        var rijndael = new System.Security.Cryptography.RijndaelManaged();
        rijndael.Key = keyArray;
        rijndael.Mode = System.Security.Cryptography.CipherMode.ECB;
        rijndael.Padding = System.Security.Cryptography.PaddingMode.PKCS7;
        rijndael.IV = System.Text.Encoding.UTF8.GetBytes(Iv);
        System.Security.Cryptography.ICryptoTransform cTransform = rijndael.CreateDecryptor();
        Byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
        return System.Text.Encoding.UTF8.GetString(resultArray);
    }

    /// <summary>
    /// AES加密MD5Key
    /// </summary>
    /// <param name="str"></param>
    /// <param name="key"></param>
    /// <returns></returns>
    public static string Encrypt_MD5_Key(string str, string key)
    {
        MD5 md5 = new MD5CryptoServiceProvider();
        Byte[] keyArray = md5.ComputeHash(Encoding.GetEncoding("UTF-8").GetBytes(key));
        Byte[] toEncryptArray = System.Text.Encoding.UTF8.GetBytes(str);
        var rijndael = new System.Security.Cryptography.RijndaelManaged();
        rijndael.Key = keyArray;
        rijndael.Mode = System.Security.Cryptography.CipherMode.ECB;
        rijndael.Padding = System.Security.Cryptography.PaddingMode.PKCS7;
        rijndael.IV = System.Text.Encoding.UTF8.GetBytes(Iv);
        System.Security.Cryptography.ICryptoTransform cTransform = rijndael.CreateEncryptor();
        Byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
        return Convert.ToBase64String(resultArray, 0, resultArray.Length);
    }
    /// <summary>
    /// AES解密MD5Key
    /// </summary>
    /// <param name="str"></param>
    /// <param name="key"></param>
    /// <returns></returns>
    public static string Decrypt_MD5_Key(string str, string key)
    {
        MD5 md5 = new MD5CryptoServiceProvider();
        Byte[] keyArray = md5.ComputeHash(Encoding.GetEncoding("UTF-8").GetBytes(key));
        Byte[] toEncryptArray = Convert.FromBase64String(str);
        var rijndael = new System.Security.Cryptography.RijndaelManaged();
        rijndael.Key = keyArray;
        rijndael.Mode = System.Security.Cryptography.CipherMode.ECB;
        rijndael.Padding = System.Security.Cryptography.PaddingMode.PKCS7;
        rijndael.IV = System.Text.Encoding.UTF8.GetBytes(Iv);
        System.Security.Cryptography.ICryptoTransform cTransform = rijndael.CreateDecryptor();
        Byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
        return System.Text.Encoding.UTF8.GetString(resultArray);
    }

    /// <summary>
    /// 生成秘钥的方法
    /// </summary>
    /// <param name="aesKeyLength"></param>
    /// <returns></returns>
    public static string createAESKey(int aesKeyLength)
    {
        String strKeyChars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
        if (aesKeyLength % 8 != 0 || aesKeyLength < 16 || aesKeyLength > 32)
        {
            aesKeyLength = 16;
        }
        String AESKey = "";
        for (int i = 0; i < aesKeyLength; ++i)
        {
            int cur = new Random().Next(0, strKeyChars.Length - 1);
            AESKey += strKeyChars.Substring(cur, 1);
        }
        return AESKey;
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
帮我翻译为java代码 var http = (HttpWebRequest)WebRequest.Create(url); http.Accept = "*/*"; http.Method = "POST"; http.ContentType = "application/json; charset=utf-8"; TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0); var currentTimeSeconds = Convert.ToInt64(ts.TotalSeconds); var signature = AESHelper.AesLocal(AppId + ApiId + currentTimeSeconds, AppKey); http.Headers["signature"] = signature; http.Headers["apiname"] = ApiId; http.Headers["appid"] = AppId; http.Headers["appkey"] = AppKey; http.ContentType = "application/json;charset=utf-8"; http.UserAgent = "PostmanRuntime/7.26.8"; Random rd = new Random(); var rdNum = rd.Next(100000, 1000000); var signStr = thirdId + "/n" + rdNum + "/n" + currentTimeSeconds + "/n" + key+"/n"; var sign = Md5Helper.Encrypt32(Base64Helper.EncodeBase64(Encoding.UTF8,signStr)); http.Headers["thirdId"] = thirdId; http.Headers["nonceStr"] = rdNum.ToString(); http.Headers["time"] = currentTimeSeconds.ToString(); http.Headers["sign"] = sign; byte[] bs = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(data)); using (var reqStream = http.GetRequestStream()) { reqStream.Write(bs, 0, bs.Length); } using (var wr = http.GetResponse()) { using (var reader = new StreamReader(wr.GetResponseStream(), Encoding.UTF8)) { var result = reader.ReadToEnd(); var json = (JObject)JsonConvert.DeserializeObject(result); if (json["success"] == null || json["success"].ToString().ToLower() != "true") { Logger.Log(MethodBase.GetCurrentMethod().Name, GetType().Name, 1, "获取广告点位失败:" + JsonConvert.SerializeObject(param)+"////"+result, LogLevel.Error); } return result; } }
06-09

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值