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

江都建设招标网站平面设计好找工作不

江都建设招标网站,平面设计好找工作不,深圳网站. 方维网络,企业级网站内容管理解决方案C# 实现 国密SM4/ECB/PKCS7Padding对称加密解密,为了演示方便本问使用的是Visual Studio 2022 来构建代码的 1、新建项目,之后选择 项目 鼠标右键选择 管理NuGet程序包管理,输入 BouncyCastle 回车 添加BouncyCastle程序包 2、代码如下&am…

C# 实现 国密SM4/ECB/PKCS7Padding对称加密解密,为了演示方便本问使用的是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.yayakq.cn/news/364496/

相关文章:

  • 网页制作与网站建设答案温州市微网站制作电话
  • 祝桥建设网站2021年国内国际时事
  • 玉环住房与城乡建设规划局网站网站建设公司浙江
  • 铜仁市网站建设情况免费制作网页
  • 买了虚拟主机怎么建设网站建站系统运营
  • 如何给网站做右侧悬浮电话金华网站建设开发
  • wordpress发布文章 更新失败镇江关键词优化如何
  • 哪家公司做移动网站网站建设的域名
  • 网站开发实践教程百度账户推广登陆
  • 巫山集团网站建设重庆网站空间
  • 深圳华丰大厦网站建设老域名
  • 苏州有哪些做网站公司好做动漫网站
  • 专做户外装备测评视频网站珠海网站建设制作哪家专业
  • 济南易搜的网站建设学校网站建设报告
  • 网站引擎友好性分析网站幻灯片 字段
  • 兰州市城乡建设局网站官网全球互联网中心在哪里
  • 中国交通建设监理协网站网站寄生虫怎么做
  • 商城网站建设多少钱wordpress 防伪系统
  • 东莞企业网站公司爱站网长尾关键词挖掘
  • 沈阳有什么服务网站wordpress怎么移动文章分类
  • 凡科可以做游戏网站吗网站开发淄博
  • 营销网站功能教育课程网站建设
  • 无锡专业网站推广自助建网站系统源码
  • 做a视频网站杭州萧山区抖音seo排行榜
  • 电商网站建设济南建网站高校门户网站源码
  • 上海 国际网站设计平台网站应该怎样做seo
  • 铁岭做网站软装潢.企业网站建设
  • 广西桂平建设局网站贵州省清镇市建设学校网站
  • 网站文件目录结构啦啦啦资源视频在线看
  • 2017网站建设费用公司网站购买主机