C# 基于.NET FRAMEWORK 4.5 JAVA 基于 JDK1.8 一.要点 1.签名算法:SM3withSM2. 2.签名值byte[] 转字符串时,双方要统一,这里是BASE64. 二.工具类和调用DEMO C# 引用了BouncyCastle.Crypto类库,在nuget上下载最新即可. 工具类: using Org.BouncyCastle.Asn1; using Org.BouncyCastle.Asn1.GM; using Org.BouncyCastle.Asn1.X9…
国密SM4对称算法实现说明(原SMS4无线局域网算法标准) SM4分组密码算法,原名SMS4,国家密码管理局于2012年3月21日发布:http://www.oscca.gov.cn/News/201204/News_1228.htm ,但不能下载标准文档. SM4为对称算法,密钥长度和分组长度均为128位.按原SMS4的标准描述:加密算法与密钥扩展算法都采用32轮非线性迭代结构.解密算法与加密算法的结构相同,只是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序. 该算法网上的C语言实现如下:…
一个关于国密SM4的故事 我的名字叫SM4,我还有三位兄长,分别是大哥SM1, 二哥SM2, 和三哥SM3.说起我的名字,故事要回到2006年的时候,我出生的时候并不是叫SM4的,而是叫做SMS4.只是2012年的时候我父亲给我改名了.虽然我起了一个洋气的名字,但我必须郑重地说,我是一个中国人.名字可能只是为了与国际接轨. 我的家族 先简单地介绍一下我的家族,我的父亲是国家密码管理局,我们几兄弟就主要负责起国家信息安全中的加密.我由一出生起,就不断地被家人提醒我要肩负重任.因此,我也非常努力,不…
一个关于国密SM4的故事 https://www.cnblogs.com/ouyida3/p/10053862.html SM1 硬件SM2 非对称加密SM3 hash算法SM4 对称加密 一个关于国密SM4的故事我的名字叫SM4,我还有三位兄长,分别是大哥SM1, 二哥SM2, 和三哥SM3.说起我的名字,故事要回到2006年的时候,我出生的时候并不是叫SM4的,而是叫做SMS4.只是2012年的时候我父亲给我改名了.虽然我起了一个洋气的名字,但我必须郑重地说,我是一个中国人.名字可能只是为了…
本文目录 1. 摘要 2. MD5加密封装 3. AES的加密.解密 4. DES加密/解密 5. 总结 1.  摘要 C#中常用的一些加密和解密方案,如:md5加密.RSA加密与解密和DES加密等,Asp.Net Core 2.0下该如何调整与使用我们以前常用的解加密算法类呢,下面是我整理的MD5加密.AES&DES对称加解密.Encrypt&Decrypt加解密完整实例.希望能给大家提供一些参考和帮助. 2.  MD5加密封装 MD5常用加密FormsAuthentication.Ha…
<?php header("Content-Type: text/html;charset=utf-8"); /** * des 对称加解密 */ class des { private $key = ''; private $cipher = MCRYPT_DES; //加解密算法 private $modes = MCRYPT_MODE_ECB; //算法模式 private $iv = ''; //初始化向量 /** * 密钥 */ public function __co…
AES加解密异常 Java后台AES解密,抛出异常如下:java.security.InvalidKeyException: Illegal key size Illegal key size or default parameters 是指密钥长度受限制,java运行时环境读到的是受限的policy文件. policy文件位于${java_home}/jre/lib/security 目录下. 这种限制是因为美国对软件出口的控制. 解决办法: 去除该限制需下载 Java Cryptograph…
简介设计思想加密模式ECB模式(电子密码本模式:Electronic codebook)CBC模式(密码分组链接:Cipher-block chaining)CFB模式(密文反馈:Cipher feedback)OFB模式(输出反馈:Output feedback)主要参数注意JAVA实现AES/ECB/ZeroPaddingPHP实现AES/ECB/ZeroPadding.NET实现AES/ECB/ZeroPadding为啥要base64 简介 高级加密标准(英语:Advanced Encry…
上一次讲了产生密钥,这次我们讲一下加密解密的实现. 先说一下加密解密的流程,一下这些内容都是从国密局发布的国密标准文档里面摘录出来的.大家可以去国密局的网站上自己下载. 下列符号适用于本部分. A,B:使用公钥密码系统的两个用户. a,b: Fq中的元素,它们定义Fq上的一条椭圆曲线E. dB:用户B的私钥. E(Fq): Fq上椭圆曲线E 的所有有理点(包括无穷远点O)组成的集合. Fq :包含q个元素的有限域. G:椭圆曲线的一个基点,其阶为素数. 2Hash( ):密码杂凑函数. Hv (…
介于java 不支持PKCS7Padding,只支持PKCS5Padding 但是PKCS7Padding 和 PKCS5Padding 没有什么区别要实现在java端用PKCS7Padding填充,需要用到bouncycastle组件来实现 所以需要一个jar 来支持.bcprov-jdk16-146.jar 下载地址:http://central.maven.org/maven2/org/bouncycastle/bcprov-jdk16/1.46/bcprov-jdk16-1.46.jar…