zoukankan      html  css  js  c++  java
  • WebService接口数据传输加密

    原文:https://www.cnblogs.com/zisai/p/7235069.html 

     

    1.加密流程

    客服端--->加密文本------>服务端接收到加密文本,通过固定加密密文进行解密,然后做相应处理------------>返回结果

    2.固定密文创建

    密文创建有很多种方式,在这篇文章使用的是从我出生那天到现在毫秒数,当然也可以使用其他。。。

    3.实现

    首先创建一个 类:SecretServer

    public class SecretServer
    {
    /// <summary>
    /// 加密
    /// </summary>
    /// <param name="encryptStr"></param>
    /// <param name="key"></param>
    /// <returns></returns>
    public static string TextEncrypt(string encryptStr, string key)
    {
    var bt = Encoding.Default.GetBytes(encryptStr);
    var base64Str = Convert.ToBase64String(bt);
    key = EncryptToMD5string(key);
    byte[] keyArray = Encoding.UTF8.GetBytes(key);
    byte[] toEncryptArray = Encoding.UTF8.GetBytes(base64Str);
    RijndaelManaged rDel = new RijndaelManaged();
    rDel.Key = keyArray;
    rDel.Mode = CipherMode.ECB;
    rDel.Padding = PaddingMode.PKCS7;
    ICryptoTransform cTransform = rDel.CreateEncryptor();
    byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
    return Convert.ToBase64String(resultArray, 0, resultArray.Length);
    }
    /// <summary>
    /// 解密
    /// </summary>
    /// <param name="decryptStr"></param>
    /// <param name="key"></param>
    /// <returns></returns>
    public static string TextDecrypt(string decryptStr, string key)
    {
    key = EncryptToMD5string(key);
    byte[] keyArray = UTF8Encoding.UTF8.GetBytes(key);
    byte[] toEncryptArray = Convert.FromBase64String(decryptStr);
    RijndaelManaged rDel = new RijndaelManaged();
    rDel.Key = keyArray;
    rDel.Mode = CipherMode.ECB;
    rDel.Padding = PaddingMode.PKCS7;
    ICryptoTransform cTransform = rDel.CreateDecryptor();
    byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
    var td = UTF8Encoding.UTF8.GetString(resultArray);
    var str = Convert.FromBase64String(td);
    var sd = Encoding.Default.GetString(str);
    return sd;
    }
    public static byte[] EncryptToMD5(string str)
    {
    MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
    byte[] str1 = System.Text.Encoding.UTF8.GetBytes(str);
    byte[] str2 = md5.ComputeHash(str1, 0, str1.Length);
    md5.Clear();
    (md5 as IDisposable).Dispose();
    return str2;
    }
    public static string EncryptToMD5string(string str)
    {
    byte[] bytHash = EncryptToMD5(str);
    string sTemp = "";
    for (int i = 0; i < bytHash.Length; i++)
    {
    sTemp += bytHash[i].ToString("X").PadLeft(2, '0');
    }
    return sTemp.ToLower();
    }

    }

  • 相关阅读:
    java反射——字段
    java反射——方法
    java反射——构造方法
    代构建高可用分布式系统的利器——Netty
    JavaEE复习计划
    Java基础复习计划(三)
    Java基础复习计划(二)
    Java基础复习计划
    关于内网穿透的相关内容
    Docker化你的应用
  • 原文地址:https://www.cnblogs.com/zisai/p/7235069.html
Copyright © 2011-2022 走看看