首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

SM4加密算法(JAVA语言实现)

1、SM4算法简介 中国国家密码管理局于2006年1月6日发布第7号公告,将我国无线局域网产品的加密算法确定为SM4算法(原SMS4)。这是国内官方公布的第一个商用密码算法。...SM4分组密码算法是一个迭代分钟密码算法,由加解密算法和密钥扩展算法组成,SM4分组密码算法采用非平衡Feistel结构,明文分组长度为128bit,密钥长度为128bit。...在SM4算法中S盒是固定不变的,而且系统参数CKi的取值也是不变的,系统参数一共有32个。 SM4的解密过程与加密过程结构完全相同,不同的仅仅是轮秘钥的使用顺序。...解密算法核心代码 SM4的解密算法与加密算法类似,唯一不同之处就是使用的轮子密钥的顺序不同,SM4解密使用的轮子密钥与加密使用的轮子密钥正好顺序相反。...西安电子科技大学出版社,2009.12 [2] 张健等 《密码学原理及应用技术》 清华大学出版,2011.08 [3] 国内一些技术博客 [4] 中国知网上的一些论文 [5] java

1.1K10

国密SM4分组加密

分享一篇SM4加密算法实现文章,算法用C语言即可实现,只有短短300多行代码。...SMS4是我国无线局域网标准WAPI中所采用的分组密码标准,随后被我国商用密码标准采用,又名SM4(SM是“商密”的缩写,目前公布的其他商密标准包括SM2椭圆曲线公钥密码,SM3密码杂凑算法)。...SM4的密钥长度和分组长度均为128比特,其设计安全性等同于AES-128。...我对加密算法进行了一个封装,可以直接用来加密文件,我的封装方法是:由于SM4的密钥长度和分组长度均为128比特(16个字节),所以我们必须要对密码和明文进行处理,最简单就是补齐16字节,密码规定最大只能是...< SM4 subkeys */ }sm4_context; /** * \brief SM4 key schedule (128-bit, encryption)

1.1K30

java+sm4+加密算法_SM4加密算法实现Java和C#相互加密解密

SM4加密算法实现Java和C#相互加密解密 近期由于项目需要使用SM4对数据进行加密,然后传给Java后台,Java后台使用的也是SM4的加密算法但是就是解密不正确,经过一步步调试发现Java中好多数据类型与...C#的相同的数据类型是存在不同的比如:byte在Java中范围是-127~128,而C#中的范围是0~255,这就导致使用C#的加密的明文产生的密文到Java中解密不正确。...新建源文件 main.cpp,代码如下 /********************************** 2017-9-5 21:02:51 声明需要被java调用的方法,该方法和java接口内部方法保持一致...项目 Java项目中要用到 jna的包和jna-platform的包下载地址:https://github.com/java-native-access/jna 新建Java空项目,在src中添加package...和C#的SM4加密解密问题。

74710

一个关于国密 SM4 的故事

原文 | https://dwz.cn/zJwokV1S 整理 | 程序猿杂货铺 我的名字叫 SM4,我还有三位兄长,分别是大哥 SM1, 二哥 SM2, 和三哥 SM3。...说起我的名字,故事要回到2006 年的时候,我出生的时候并不是叫 SM4 的,而是叫做 SMS4。只是 2012 年的时候我父亲给我改名了。虽然我起了一个洋气的名字,但我必须郑重地说,我是一个中国人。...《SM4 分组密码算法标准英文文本》下载地址:http://suo.im/52YK0H (公众号后台回复【SM4】可以获取 PDF 版本) 我的实现 后面陆陆续续,有很多语言根据我的标准进行了实现,包括...C、Java、Python 等等。...下面贴一下我的好朋友 Java 实现中的关键轮函数(代码量比较大,限于篇幅,此处就不全部贴出来,想进一步了解的后台可以回复【SM4】获取完整代码)。 /** * 轮函数F。

2.1K21

【进阶之路】SM4国密算法与实现

我准备研究SM4算法的时候,中国互联网络信息中心里已经不提供SM4算法的标准文档了,所以只能去网上查阅资料。感谢一文带你学会国产加密算法SM4java实现方案这篇文章。 ?...2、SM4加密算法应用场景 SM4常用于政府系统的数据传输加密,我们使用前端向后端传递信息,或者分布式场景下不同模块之间的调用,可以使用此算法。...3、SM4算法java的实现 现在我就来简单的实现一下SM4算法的加解密功能 首先是一些常数值,包括编码,算法名,秘钥长度等,如果可以的写成参数值最好。...; import java.security.SecureRandom; import java.security.Security; import java.util.Arrays; import java.util.HashMap...; import java.util.Map; import java.util.Random; import java.util.concurrent.LinkedBlockingQueue; import

95830

KonaJDK 助力微服务国密算法使用特性一览

算法支持JCE Provider TencentSMProvider 随着国密算法等商密算法国家标准的推出,云上客户对于 Java 版本的国密算法需求越来越多。...KonaJDK8 内置了国密算法的 JCE Provider, Java 用户只需要使用 JCE API 即可使用国密 SM2/SM3/SM4 算法。...另外代码中涉及的 SM4 秘钥传输并不安全,仅做说明使用。...,包含公钥与私钥,并返回公钥给 Consumer ; 针对 SM4 生成秘钥并返回给 Consumer : 获取SM2/SM4加密的密文并解密 使用 SM3 计算 hash digest 注意上图的代码中已经包含了使用...参考链接 https://github.com/Tencent/TencentKona-8/releases 往期 推荐 《2020年腾讯云KonaJDK开源贡献总结》 《KonaJDK赋能云上Java

69430
领券