一些加密的说明,本文主要是sm2

1、SM1是一种分组加密算法
对称加密算法中的分组加密算法,其分组长度、秘钥长度都是128bit,算法安全保密强度跟 AES 相当,但是算法不公开,仅以IP核的形式存在于芯片中,需要通过加密芯片的接口进行调用。

采用该算法已经研制了系列芯片、智能IC卡、智能密码钥匙、加密卡、加密机等安全产品,广泛应用于电子政务、电子商务及国民经济的各个应用领域(包括国家政务通、警务通等重要领域)。

2、SM2是非对称加密算法
它是基于椭圆曲线密码的公钥密码算法标准,其秘钥长度256bit,包含数字签名、密钥交换和公钥加密,用于替换RSA/DH/ECDSA/ECDH等国际算法。可以满足电子认证服务系统等应用需求,由国家密码管理局于2010年12月17号发布。

SM2采用的是ECC 256位的一种,其安全强度比RSA 2048位高,且运算速度快于RSA。

3、SM3是一种密码杂凑算法
用于替代MD5/SHA-1/SHA-2等国际算法,适用于数字签名和验证、消息认证码的生成与验证以及随机数的生成,可以满足电子认证服务系统等应用需求,于2010年12月17日发布。

它是在SHA-256基础上改进实现的一种算法,采用Merkle-Damgard结构,消息分组长度为512bit,输出的摘要值长度为256bit。

4、SM4是分组加密算法

跟SM1类似,是我国自主设计的分组对称密码算法,用于替代DES/AES等国际算法。SM4算法与AES算法具有相同的密钥长度、分组长度,都是128bit。于2012年3月21日发布,适用于密码应用中使用分组密码的需求。

5、SM7是一种分组加密算法
该算法没有公开。SM7适用于非接IC卡应用包括身份识别类应用(门禁卡、工作证、参赛证),票务类应用(大型赛事门票、展会门票),支付与通卡类应用(积分消费卡、校园一卡通、企业一卡通、公交一卡通)。

6、SM9是基于标识的非对称密码算法
用椭圆曲线对实现的基于标识的数字签名算法、密钥交换协议、密钥封装机制和公钥加密与解密算法,包括数字签名生成算法和验证算法,并给出了数字签名与验证算法及其相应的流程。并提供了相应的流程。可以替代基于数字证书的PKI/CA体系。

SM9主要用于用户的身份认证。据新华网公开报道,SM9的加密强度等同于3072位密钥的RSA加密算法,于2016年3月28日发布。

7、祖冲之密码算法是一种流加密算法
它是中国自主研究的流密码算法,该机密性算法可适用于3GPP LTE通信中的加密和解密,该算法包括祖冲之算法(ZUC)、加密算法(128-EEA3)和完整性算法(128-EIA3)三个部分。目前已有对ZUC算法的优化实现,有专门针对128-EEA3和128-EIA3的硬件实现与优化,由国家密码管理局于2012年3月21日发布。

以上算法除了SM1、SM7算法未公开以外,其它算法及相关文档可以在国家密码局官网找到,算法源码也可以在商用密码检测官网下载到。

vue-sm2加密解密

1.安装sm2

npm install --save sm-crypto

2.加密:

const sm2 = require('sm-crypto').sm2
const cipherMode = 1 ;// 1 - C1C3C2,0 - C1C2C3,默认为1
const publicKey = "04fffce60f2a91ac4c4bcc3aaf5a06b7d8eef2ea2d4ddf22bfb5137006307185234f8a61e671446c110e9f12d81d1f54d2fd1407d51ba422bc9c96d50889ce6730"

let txt='123456'  //要加密的字段
let encryptData = sm2.doEncrypt(txt, publicKey, cipherMode ) // 加密结果
return '04' + encryptData;

一般需要在结果前添加04返回

3.解密

const sm2 = require('sm-crypto').sm2

let needval = val.substring(2)//val是后台传过来的加密字段,将其前边的‘04’截取掉

var privceKey="5bb255375e9ce5f7f8215641b53edbd58bdfd383c60480b41df5c16a152a921d"

const cipherMode = 1 // 1 - C1C3C2,0 - C1C2C3,默认为1

let decryptData = sm2.doDecrypt(needval, privceKey, cipherMode) // 解密结果

return decryptData;

国密加密解密之vue-sm2使用相关推荐

  1. 前端国密加解密使用方法SM2、SM3、SM4

    国密算法,即国家商用密码算法.是由国家密码管理局认定和公布的密码算法标准及其应用规范,其中部分密码算法已经成为国际标准.如SM系列密码,SM代表商密,即商业密码,是指用于商业的.不涉及国家秘密的密码技 ...

  2. 【转】C#实现SM2国密加密

    本文主要讲解"国密加密算法"SM系列之SM2的C#实现方法,加密规则请详阅国密局发布的文档. 首先需第三方Nuget包:Portable.BouncyCastle (源码来自htt ...

  3. Java国密加密SM2代码

    Java国密加密SM2代码 文章目录 Java国密加密SM2代码 前言 一.SM2是什么? 二.使用步骤 1.引入Maven库 2.密码工具类 3.安全工具类 4.SM2工具类 5.SM2工具实用类 ...

  4. js 使用sm2 国密加密

    js 使用sm2 国密加密 由于项目中要对数据进行国密加密 注意: 同一个明文,加密后的密文都不同,解密的话要用私钥解密 js用sm2加密,首先要从后端获取公钥,用公钥加密 参考资料 crypto-j ...

  5. 【国密】利用gmssl生成SM2证书nginx访问

    之前我们项目的证书都是rsa的,这次本意是希望能升级到国密,但是理想过于丰满 一.GMSSL安装 # 下载 wget https://github.com/guanzhi/GmSSL/archive/ ...

  6. 【转】C#实现SM3国密加密

    C#实现SM3国密加密 本文主要讲解"国密加密算法"SM系列之SM3的C#实现方法,加密规则请详阅国密局发布的文档. 首先需第三方Nuget包:Portable.BouncyCas ...

  7. 技术分享 | 使用 mPaaS 配置 SM2 国密加密指南

    简介:随着移动智能终端的广泛应用,敏感信息极易被监控或盗取,给国家.企事业及个人带来极大政治.经济损失.金融和重要领域的各个企业正在逐步落实并完成国产密码改造工作.为解决客户侧因更换加密算法造成的种种 ...

  8. java实现国密加解密

    1. pom依赖 <dependency><groupId>org.bouncycastle</groupId><artifactId>bcprov-j ...

  9. 国密(国产密码)SM2、SM3、SM4 C#实现

    参考:http://www.voidcn.com/article/p-zlnqwzbd-cm.html 这两天与联通对接流量卡实名相关接口.他们用到了国密SM3,一个比较冷门的加密(或者说是签名)方式 ...

最新文章

  1. 耗时很长的程序忘加nohup就运行了怎么办?
  2. XamarinSQLite教程创建数据表
  3. Android非空格式验证框架Validation的使用---第三方库学习笔记(四)
  4. Python: The _imagingft C module is not installed错误的解决
  5. [原创]SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT 'OpenRowset/OpenDatasource' 的访问...
  6. 详解ADO.NET操作数据库合力创享
  7. 《论文笔记》Robust Cooperative UAV Visual SLAM
  8. (c语言)输入某年某日,判断这一天是这一年的第几天?
  9. [修正] Firemonkey Windows 控件有虚线残影问题
  10. 应聘软件测试岗位需要掌握的基础知识与技能(面试常考内容)
  11. 通达信 移动平均算法_通达信擒龙攻防战法主图指标公式
  12. 北京二手房呈井喷态势 单日网签年内首超600套
  13. 如何用php 图片合成一张图片,怎么用PHP把多张图片合成一张
  14. ICMP Flood防范
  15. 蓝彩影视V73-安卓/苹果/网页/TV端/有教程
  16. 程序员常用的一些快捷键(持续更新)
  17. 各种字符编码与Char字符
  18. php 模拟百度蜘蛛
  19. 前端JS校验银行卡卡号和身份证号码(附ES6版方法)
  20. 设计数据密集型应用(一),DDIA

热门文章

  1. ​证件照怎么换底色?分享一个快速换底色的方法
  2. 安卓智能地图开发与实施六:离线基础底图 - ArcGIS Runtime SDK for Android(Version 100.0.0)
  3. 我的swagger上面怎么没有models_怎么用英文描述一个人傲慢?不是very pride!
  4. 关于非暴力沟通的技巧培训总结
  5. MySQL讲义第 37 讲——LOAD DATA INFILE 命令
  6. 【Qt】Qt发展历史
  7. 一起来聊聊MySQL 8.0 的特性及排名可好?
  8. 计算机专业产品开发译码,计算机专业前景可好
  9. 华为发布BB智能观影产品:Vision Glass
  10. 进阶面试的必看的ORM架构之 ORM简介