当前位置: 首页 > news >正文

成都网站建站西安网站建设公

成都网站建站,西安网站建设公,dede网站模板,学编程的培训机构C# 实现 国密SM4/ECB/PKCS7Padding对称加密解密#xff0c;为了演示方便本问使用的是Visual Studio 2022 来构建代码的 1、新建项目#xff0c;之后选择 项目 鼠标右键选择 管理NuGet程序包管理#xff0c;输入 BouncyCastle 回车 添加BouncyCastle程序包 2、代码如下为了演示方便本问使用的是Visual Studio 2022 来构建代码的 1、新建项目之后选择 项目 鼠标右键选择  管理NuGet程序包管理输入  BouncyCastle 回车 添加BouncyCastle程序包 2、代码如下CBC模式 byte[] plaintext Encoding.UTF8.GetBytes(1234567890国abcdefghijklmnopqrstuvwxyz);byte[] keyBytes Encoding.UTF8.GetBytes(1234567890123456);byte[] iv Encoding.UTF8.GetBytes(0123456789ABCDEF);// SM4/CBC加密KeyParameter key ParameterUtilities.CreateKeyParameter(SM4, keyBytes);ParametersWithIV keyParamWithIv new ParametersWithIV(key, iv);IBufferedCipher inCipher CipherUtilities.GetCipher(SM4/CBC/PKCS7Padding);inCipher.Init(true, keyParamWithIv);byte[] cipher inCipher.DoFinal(plaintext);//Console.WriteLine(加密后的密文(hex): {0}, BitConverter.ToString(cipher, 0).Replace(-, string.Empty));rtbCard.Text $加密后的密文: {Convert.ToBase64String(cipher).Replace(-, string.Empty)};// SM4/CBC解密inCipher.Reset();inCipher.Init(false, key);byte[] bin inCipher.DoFinal(cipher);string ans Encoding.UTF8.GetString(bin);//Console.WriteLine(解密后的密文(hex): {0}, Convert.ToBase64String(cipher).Replace(-, string.Empty));//Console.WriteLine(解密明文内容: {0}\t是否匹配: {1}, ans, Enumerable.SequenceEqual(plaintext, bin));rtbCard.Text rtbCard.Text \r\n $解密明文内容: {ans}\t是否匹配: {Enumerable.SequenceEqual(plaintext, bin)}; 代码如下ECB模式 byte[] plaintext Encoding.UTF8.GetBytes(1234567890国abcdefghijklmnopqrstuvwxyz);byte[] keyBytes Encoding.UTF8.GetBytes(1234567890123456);byte[] iv Encoding.UTF8.GetBytes(0123456789ABCDEF);// SM4/ECB加密KeyParameter key ParameterUtilities.CreateKeyParameter(SM4, keyBytes);//ParametersWithIV keyParamWithIv new ParametersWithIV(key, iv);ParametersWithIV keyParamWithIv new ParametersWithIV(key, iv);//IBufferedCipher inCipher CipherUtilities.GetCipher(SM4/CBC/PKCS7Padding);IBufferedCipher inCipher CipherUtilities.GetCipher(SM4/ECB/PKCS7Padding);//inCipher.Init(true, keyParamWithIv);inCipher.Init(true, key);byte[] cipher inCipher.DoFinal(plaintext);//Console.WriteLine(加密后的密文(hex): {0}, BitConverter.ToString(cipher, 0).Replace(-, string.Empty));rtbCard.Text $加密后的密文: {Convert.ToBase64String(cipher).Replace(-, string.Empty)};// SM4/ECB解密inCipher.Reset();//inCipher.Init(false, keyParamWithIv);inCipher.Init(false, key);byte[] bin inCipher.DoFinal(cipher);string ans Encoding.UTF8.GetString(bin);Console.WriteLine(解密后的密文(hex): {0}, Convert.ToBase64String(cipher).Replace(-, string.Empty));Console.WriteLine(解密明文内容: {0}\t是否匹配: {1}, ans, Enumerable.SequenceEqual(plaintext, bin));rtbCard.Text rtbCard.Text \r\n $解密明文内容: {ans}\t是否匹配: {Enumerable.SequenceEqual(plaintext, bin)}; 3、运行 4、SM4密码算法是一个分组算法。数据分组长度为128比特密钥长度为128 比特。加密算法采用32 轮迭代结构每轮使用一个轮密钥。我们在实现可用data字节的形式即秘钥Data为16位加密数据Data需为16的整数倍这两点很重要。 1、ECB模式 观察第一块和第三块皆为明文块0相同的输入产生相同的输出 2、CBC模式 CBC密文分组链接方式它的实现机制使加密的各段数据之间有了联系。 也是按照data 16位来分组第一组数据与初始化向量IV异或后的结果进行加密密得到第一组密文C1初始化向量I为全零第二组数据与第一组的加密结果C1异或以后的结果进行加密得到第二组密文C2...... 最后C1C2C3......Cn即为加密结果。此种方法安全性高但是不利于并行计算有误差传递需要初始化向量IV。 参考链接国密sm4 ECB、CEC模式探究与在iOS中的应用_sm4 ecb_落尘修竹的博客-CSDN博客
http://www.hkea.cn/news/14561116/

相关文章:

  • 建立网站需要多少钱就蓷y湖南岚鸿推荐国际最新时事新闻热点
  • 多媒体展厅哪家公司好班级优化大师免费下载
  • 镇江网站建设要多少钱优化大师怎么删除学生
  • app模板下载网站一件代发48个货源网站
  • 招商网站开发文档网站建设平台官网
  • 株洲网站建设公司创建站点的步骤
  • 苏州建网站的公司平台收费标准做网站小程序源码
  • 只有域名可以做网站吗太平洋建设网站
  • 江门网站优化公司韶关市住房和城乡建设局网站
  • 广州网站制作在线建设网站所采用的技术方案
  • 做个网页需要多少钱怀化优化办
  • 怎么提高网站seo优化关键字排名推广文案怎么写吸引人
  • 漳州网站建设优化排名怎么删除一个wordpress
  • 帝国cms怎么做网站wordpress 用户管理插件
  • 北京高端网站建设制作设计哈尔滨到牡丹江
  • 如何建立免费网站手机网站免费做app
  • net的网站建设阿里巴巴网站建设的态度虚心
  • 云南网站优化哪家好北京保障房建设网站
  • 建酒店网站交互设计软件有哪些
  • 专业的移动网站建设wordpress两个侧边栏
  • 建站公司怎么获客一家专门做护肤的网站
  • 趣图在线生成网站源码厦门北京网站建设公司哪家好
  • 番禺建设银行网站首页wordpress当前分类文章
  • 平顶山建设银行网站版面设计图大全模板
  • 营销型网站建设tfx88网站后台登入不了出现验证码错误
  • 电子商务网站建设开题报告WORDPRESS摘要无效
  • 厚街网站建设报价网站域名查询ip
  • 织梦网站安装播放视频插件下载开发游戏的职业叫什么
  • 家政门户网站源码网页设计结束语
  • 做餐饮的网站建设工程资质录入是在那个网站