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

成都网站建站微盟登录

成都网站建站,微盟登录,网站空间稳定性,南宁做网站科技公司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/14302164/

相关文章:

  • 做网站应该怎么做服装网站项目的设计方案
  • 信创网站南充市住房和城乡建设厅官方网站
  • 网站收费模板网站优化培训学校
  • 梦想小镇旅游官方网站建设企业管理咨询报告
  • 做欧洲电商看哪个网站吗网页设计工作室长沙
  • 如何进行网站性能优化网站导航面包屑
  • 建筑工程网上超市江苏短视频seo搜索
  • 国外服装定制网站重庆做网站
  • 网站建设目标规划南宁网上房地产
  • 电力建设网站做网站不买服务器百度能搜到
  • 网站开发 视频存储wordpress date
  • 网站如何做超级链接济南网站建设行知科技
  • 公司企业宣传片四川seo多少钱
  • 长春网站搭建wordpress增加标签页
  • 做网站步骤详解磁力搜索引擎torrentkitty
  • 合肥网站建设 一浪wordpress 平衡插件
  • 太原市手机微网站建设线在成都网站推广公司
  • wordpress大型站点免费建站模板
  • 网站管理人员队伍建设说明材料做一个小程序开发
  • 广州网站建设外贸想给公司做个网站 怎么做
  • 铭讯网站建设西安百姓网免费发布信息网
  • 蚌埠企业网站建设dedecms 迁移 wordpress
  • 电商网站建设课程建设银行信用卡积分兑换商城网站
  • 付费做SPaSS统计分析的网站广州越秀区发布紧急通告
  • 高品质的佛山网站建设网站建设法规政策
  • 织梦网站后台如何做百度优化南通网站推广
  • 东阳做网站做电子请柬用什么网站
  • 网站推广效果不好原因济南做网络推广
  • 建网站大公司北京网优化seo公司
  • 长沙营销型网站制作费用给公司做门户网站多少钱