iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >如何使用sm4js进行加密和国密sm4总结
  • 575
分享到

如何使用sm4js进行加密和国密sm4总结

sm4js 加密国密 sm4 2023-05-18 05:05:35 575人浏览 独家记忆
摘要

目录1、先安装sm4js2、安装完成之后在项目中怎么使用3、国密sm4的总结3.1 、SM算法3.2 、SM4加密有两种模式:ecb和cbc总结最近在开发过程中,用到了sm4国密加密

最近在开发过程中,用到了sm4国密加密,因为之前没有用过,所以就想总结一下。

先说一下怎么安装使用(Vue项目)

1、先安装sm4js

npm i sm4js

在package.JSON中显示sm4js的版本如下:

"dependencies": {
   "axiOS": "^1.3.2",
   "sm4js": "^0.0.6"
},

2、安装完成之后在项目中怎么使用

<script>
  import Sm4js from 'sm4js';
  export default {
    name: 'color',
    ...
    methods:{
      geTKEy(){
        let sm4Config = {
          key: this.key, // 密钥  前后端一致即可,后端提供,一般通过接口请求获取到
          iv: this.iv, // iv是initialization vector的意思,就是加密的初始话矢量,初始化加密函数的变量,也叫初始向量。一般通过接口请求获取到
          mode: 'cbc', // 加密的方式有两种,ecb和cbc两种
          cipherType: 'base64'
        }
        let sm4 = new Sm4js(sm4Config)
        // 对数据进行加密   encrypt - 加密方法
        this.encrypted = sm4.encrypt(this.cardId)
        // 对数据进行解密   decrypt - 解密方法
        this.decrypted = sm4.decrypt(this.idCardNumber)
      }
    }
  }
</script>

3、国密sm4的总结

3.1 、SM算法

国密即国家密码局认定的国产密码算法。主要有SM1,SM2,SM3,SM4。密钥长度和分组长度均为128位。

SM1 为对称加密。其加密强度与AES相当。该算法不公开,调用该算法时,需要通过加密芯片的接口进行调用。

SM2为非对称加密,基于ECC。该算法已公开。由于该算法基于ECC,故其签名速度与秘钥生成速度都快于RSA。ECC 256位(SM2采用的就是ECC 256位的一种)安全强度比RSA 2048位高,但运算速度快于RSA。

SM3 消息摘要。可以用MD5作为对比理解。该算法已公开。校验结果为256位。

SM4 无线局域网标准的分组数据算法。对称加密,密钥长度和分组长度均为128位。

3.2 、SM4加密有两种模式:ecb和cbc

两种模式的区别如下

ECB:是一种基础的加密方式,密文被分割成分组长度相等的块(不足补齐),然后单独一个个加密,一个个输出组成密文。

CBC:是一种循环模式(链式),前一个分组的密文和当前分组的明文操作后再加密,这样做的目的是增强破解难度。(不容易主动攻击,安全性好于ECB,是SSL、IPSec的标准)

两种模式的概念不同

1、ECB模式又称电子密码本模式:Electronic codebook,是最简单的块密码加密模式,加密前根据加密块大小(如AES为128位)分成若干块,之后将每块使用相同的密钥单独加密,解密同理。

2、密码分组链接(CBC,Cipher-block chaining)模式,由IBM于1976年发明,每个明文块先与前一个密文块进行异或后,再进行加密。在这种方法中,每个密文块都依赖于它前面的所有明文块。同时,为了保证每条消息的唯一性,在第一个块中需要使用初始化向量IV。

两种模式的优点

ECB模式:1、简单;2、有利于并行计算;3、误差不会bai被传送;

CBC模式:1、不容易主动攻击,安全性好于baiECB,适合传输长度长的报文,是SSL、IPSec的标准。

两种模式的缺点

ECB模式:1、不能隐藏明文的模式;2、可能对明文进行主动攻击;

CBC模式:1、不利于并行计算;2、误差传递;3、需要初始化向量IV

总结

到此这篇关于如何使用sm4js进行加密和国密sm4的文章就介绍到这了,更多相关sm4js加密和国密sm4内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 如何使用sm4js进行加密和国密sm4总结

本文链接: https://www.lsjlt.com/news/211748.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何使用sm4js进行加密和国密sm4总结
    目录1、先安装sm4js2、安装完成之后在项目中怎么使用3、国密sm4的总结3.1 、SM算法3.2 、SM4加密有两种模式:ecb和cbc总结最近在开发过程中,用到了sm4国密加密...
    99+
    2023-05-18
    sm4js 加密 国密 sm4
  • 如何使用PHP进行加密和解密?
    PHP是一种流行的服务器端脚本语言,它可以用来创建复杂的Web应用程序。其中一个重要的功能是加密和解密敏感数据。在本文中,我们将讨论如何使用PHP进行加密和解密。对称加密算法对称加密算法是最常见的加密方式之一,也被称为单密钥加密。它使用同一...
    99+
    2023-05-22
    PHP加密(Encryption) PHP解密(Decryption) 对称加密(Symmetric encryptio
  • 如何使用PHP进行数据加密和解密?
    随着网络技术的快速发展,数据安全已经成为了网络应用开发中最重要的问题之一。数据加密是一种保护敏感信息的方式,可以通过加密算法将数据转化为一串看似无意义的字符,使得未经授权的人无法读取这些信息。PHP是一种广泛使用的服务器端脚本语言,它提供了...
    99+
    2023-05-21
    PHP 数据加密 数据解密
  • 如何在Java中使用RSA加密对密码进行加密解密
    这期内容当中小编将会给大家带来有关如何在Java中使用RSA加密对密码进行加密解密,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。具体如下:public static void ...
    99+
    2023-05-31
    java rsa加密 ava
  • 如何在JAVA中使用MD5加密对密码进行加密
    本篇文章为大家展示了如何在JAVA中使用MD5加密对密码进行加密,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。新建Md5.javapackage com.loger.md5;import java....
    99+
    2023-05-31
    java md5加密 ava
  • 如何使用openssl对文件进行加密和解密
    这篇文章主要介绍如何使用openssl对文件进行加密和解密,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!openssl是一个安全套接字层密码库,囊括主要的密码算法、常用密钥、证书封装管理功能及实现ssl协议。Open...
    99+
    2023-06-27
  • Linux中如何使用age进行文件加密和解密
    这篇文章将为大家详细讲解有关Linux中如何使用age进行文件加密和解密,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。age 是一个简单的、易于使用的工具,允许你用一个密码来加密和解密文件。文件的保护和敏...
    99+
    2023-06-27
  • 如何使用vbs对QWERTY密码进行加密与解密
    这篇文章主要介绍如何使用vbs对QWERTY密码进行加密与解密,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在做Arthur's Online Riddle的时候有这么一道题目: If QWERTY = AB...
    99+
    2023-06-08
  • C#如何使用SHA1算法对密码进行加密
    这篇文章给大家分享的是有关C#如何使用SHA1算法对密码进行加密的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。C#中如何使用SHA1对密码进行加密呢?在这里呢小编创建的是ASP.NET Web 项目应用程序,wi...
    99+
    2023-06-14
  • java如何使用Apache commons codec进行MD5加密,BASE64加密解密,执行系统命令
    这篇文章将为大家详细讲解有关java如何使用Apache commons codec进行MD5加密,BASE64加密解密,执行系统命令,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。编写代码之前先来介绍一下...
    99+
    2023-05-30
    java apache
  • 如何使用MyBatis进行数据存储的加密、解密
    背景:在大部分的系统中,出于用户的隐私安全考虑,都会对数据库内容进行加密,那么在编写业务代码逻辑时加密也不太现实。于是通用的加解密插件就应运而生,本文将采用mybatis的拦截器作为基础进行实现。 思路:我们可以通过mybatis...
    99+
    2023-08-17
    mybatis java 开发语言
  • 如何在java中使用RSA算法对密码进行加密与解密
    本篇文章给大家分享的是有关如何在java中使用RSA算法对密码进行加密与解密,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。前言:  RSA是第一个比较完善的公开密钥算...
    99+
    2023-05-31
    java rsa算法 ava
  • Linux下如何使用cryptsetup对磁盘进行加密
    这篇文章主要介绍Linux下如何使用cryptsetup对磁盘进行加密,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!cryptsetup是linux下的一个分区加密工具,cryptsetup是分区级别的加密,比文件系...
    99+
    2023-06-27
  • 如何使用WinLicense对软件进行加密保护和授权
    使用WinLicense对软件进行加密保护和授权的步骤如下:1. 下载并安装WinLicense软件。可以从官方网站或其他可信来源下...
    99+
    2023-09-22
    WinLicense
  • 如何在node.js中使用​JsonWebToken模块进行token加密
    目录一、token1、什么是token2、作用二、Express中实现token的方法:1、使用JWT模块:JsonWebToken2、token验证的流程3、Express中实现过...
    99+
    2023-03-19
    nodejs token node token验证 node.js token加密
  • Springboot如何使用filter对response内容进行加密方式
    这篇文章主要介绍Springboot如何使用filter对response内容进行加密方式,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!使用filter对response内容进行加密编写加密类(AES)public&...
    99+
    2023-06-29
  • 如何对Linux上使用LUKS加密的部分进行备份
    这篇文章主要讲解了“如何对Linux上使用LUKS加密的部分进行备份”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何对Linux上使用LUKS加密的部分进行备份”吧!一个解决方案: Bds...
    99+
    2023-06-12
  • 如何在 ASP 中使用 http shell 对象进行数据加密?
    ASP是一种流行的服务器端脚本语言,用于创建动态网站和Web应用程序。在ASP中,可以使用HTTP Shell对象进行数据加密。HTTP Shell对象是ASP中的一个内置对象,用于与操作系统交互,可以执行系统命令、创建和删除文件、读取和写...
    99+
    2023-06-02
    http shell 对象
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作