WebService接口数据传输加密「建议收藏」

WebService接口数据传输加密「建议收藏」WebService接口数据传输加密

大家好,又见面了,我是你们的朋友全栈君。

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();
}

}

转载于:https://www.cnblogs.com/zisai/p/7235069.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/106763.html原文链接:https://javaforall.net

(0)
上一篇 2022年4月22日 上午11:00
下一篇 2022年4月22日 上午11:20


相关推荐

  • Json详解以及fastjson使用教程[通俗易懂]

    Json是一种轻量级的数据交换格式,采用一种“键:值”对的文本格式来存储和表示数据,在系统交换数据过程中常常被使用,是一种理想的数据交换语言。在使用Java做Web开发时,不可避免的会遇到Json的使用。下面我们就简单讲一下Json的使用以及fastjson.jar包的使用。一:JSON形式与语法1.1:JSON对象我们先来看以下数据:{ "ID":1001, "name"…

    2022年4月10日
    180
  • pycharm如何设置成中文

    pycharm如何设置成中文需要中文包的可以加入我们的 Python 交流群 7848 6745 找管理员获取 1 Python 执行程序形式 pythonscript pypython c print python i 执行后进入交互式 2 虚拟环境配置 介绍 python 需要创建虚拟环境的原因 3 4 之前版本用 virtualenv 工具 3 4 及以后版本可以用 venv 模块 virtualenvmy

    2026年3月27日
    2
  • 链式前向星–最通俗易懂的讲解

    链式前向星–最通俗易懂的讲解如果说邻接表是不好写但效率好 邻接矩阵是好写但效率低的话 前向星就是一个相对中庸的数据结构 前向星固然好写 但效率并不高 而在优化为链式前向星后 效率也得到了较大的提升 虽然说 世界上对链式前向星的使用并不是很广泛 但在不愿意写复杂的邻接表的情况下 链式前向星也是一个很优秀的数据结构

    2026年3月26日
    2
  • 云计算适合什么企业_当前全球云计算处于发展

    云计算适合什么企业_当前全球云计算处于发展云计算时代:哪些企业适合上云?

    2022年4月21日
    63
  • 美丽的表格样式(使用CSS样式表控制表格样式)

    美丽的表格样式(使用CSS样式表控制表格样式)

    2021年12月1日
    101
  • Python-Curses模块

    Python-Curses模块Python Curses 什么是 Curses PythonCurses 模块开始我们的编程吧 WindowsandPa 什么是 Curses curses 库为基于文本的终端提供独立于终端的屏幕绘制和键盘处理设施 这些终端包括 VT100s Linux 控制台和各种程序提供的模拟终端 显示终端支持各种控制代码来执行常见的操作 如移动光标 滚动屏幕和擦除区域 不同的终端使用的代码差别很大 而且常常有

    2026年3月19日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号