国密SM2前端加密解密示例

这篇具有很好参考价值的文章主要介绍了国密SM2前端加密解密示例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、 安装sm2依赖

二、编写代码

1、data中绑定数据

2、公钥加密

3、私钥解密

4、按钮绑定一下,数据可见一下

三、完整代码


一、 安装sm2依赖

npm install --save sm-crypto

二、编写代码

1、data中绑定数据

要改变的数据phone和过程数据copyphone,公钥publicKey和私钥privateKey

具体生成测试公钥私钥可参照SM2加解密

C1为65字节第1字节为压缩标识,这里固定为0x04

publicKey是'04'+公钥X+公钥Y

privateKey直接复制粘贴

实际运行情况下可参考RuoYi前后端分离(登录密码加密)更改为SM2加密,密钥由后端传输

export default {
    data() {
        return {
            copyphone: '',
            phone: '',
            publicKey: "",
            privateKey: "",
        }
    },

2、公钥加密

    getphone() {
            const sm2 = require('sm-crypto').sm2;
            var publicKey = this.publicKey;//加密使用
            var encrText = this.phone;//例如var enxrText = this.phone;
            const cipherMode = 1;
            let encryptData = sm2.doEncrypt(encrText, publicKey, cipherMode) // 加密结果
            this.copyphone = encryptData;
            return '04' + encryptData;//04可不要具体看后端要求
        },

3、私钥解密

returnphone() {
            const sm2 = require('sm-crypto').sm2;
            var privateKey = this.privateKey;
            var encrText = this.copyphone;
            const cipherMode = 1
            let decryptData = sm2.doDecrypt(encrText, privateKey, cipherMode) // 解密结果
            this.copyphone = decryptData;//赋值方便处理
            return decryptData;
        }

4、按钮绑定一下,数据可见一下

<template>
    <div>
        <navigation_bar></navigation_bar>
        <el-tag>原始数据</el-tag><el-input v-model="phone" placeholder="请输入待转换数据"> 
        </el-input>
        <el-tag>过程数据</el-tag><el-input v-model="copyphone"></el-input>
        <el-tag>公钥</el-tag><el-input v-model="publicKey"></el-input>
        <el-tag>私钥</el-tag><el-input v-model="privateKey"></el-input>
        <el-button type="primary" @click="getphone()">sm2加密按钮</el-button>
        <el-button type="primary" @click="returnphone()">sm2解密按钮</el-button>
    </div>
</template>

三、完整代码

请放在Vue项目下运行文章来源地址https://www.toymoban.com/news/detail-769138.html

<template>
    <div>
        <el-tag>原始数据</el-tag><el-input v-model="phone" placeholder="请输入待转换数据"></el-input>
        <el-tag>过程数据</el-tag><el-input v-model="copyphone"></el-input>
        <el-tag>公钥</el-tag><el-input v-model="publicKey"></el-input>
        <el-tag>私钥</el-tag><el-input v-model="privateKey"></el-input>
        <el-button type="primary" @click="getphone()">sm2加密按钮</el-button>
        <el-button type="primary" @click="returnphone()">sm2解密按钮</el-button>
    </div>
</template>
<script>
// npm install --save sm-crypto
// 第一步就是安装依赖
//解密使用 var privateKey = "私钥";
//加密使用 var publicKey  = "公钥"; 
export default {
    data() {
        return {
            copyphone: '',
            phone: '',
            publicKey: "自己生成好的填进来",
            privateKey: "自己生成好的填进来",
        }
    },
    methods: {
        getphone() {
            const sm2 = require('sm-crypto').sm2;
            //C1为65字节第1字节为压缩标识,这里固定为0x04
            //publicKey是'04'+公钥X+公钥Y
            //密钥对生成https://i.goto327.top/CryptTools/SM2.aspx
            var publicKey = this.publicKey;//加密使用
            var encrText = this.phone;//例如var enxrText = this.phone;
            const cipherMode = 1;
            let encryptData = sm2.doEncrypt(encrText, publicKey, cipherMode) // 加密结果
            this.copyphone = encryptData;
            return '04' + encryptData;//04可不要具体看后端要求
        },
        returnphone() {
            const sm2 = require('sm-crypto').sm2;
            var privateKey = this.privateKey;
            var encrText = this.copyphone;
            const cipherMode = 1
            let decryptData = sm2.doDecrypt(encrText, privateKey, cipherMode) // 解密结果
            this.copyphone = decryptData;//赋值方便处理
            return decryptData;
        }
    }
}
</script>

到了这里,关于国密SM2前端加密解密示例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • OpenSSL 3.1.1 ECC 加密、解密、签名、验签(国密 sm2、sm3)

    openssl 3 默认废弃了 旧版本 (opessl 1.x) 的部分api 导致部分旧ecc 代码无法使用(可以通过配置编译选项打开) ,这里展示如何使用新接口用ECC 进行加密解密。 新接口是真的方便,基本上你都不需要懂啥密码学知识,对我们这种密码白痴来说太好了 头文件 生成密钥对 导出公

    2024年02月05日
    浏览(60)
  • java实现国密SM4的加密和解密方式(即时通讯的消息对话加密采用SM2还是SM4)

    1.对于即时通讯的消息对话加密采用SM2还是SM4更合适? 对于即时通讯的消息对话加密,建议采用SM4对称加密算法,而不是SM2非对称加密算法。 SM2主要用于数字签名和密钥交换,其加密速度比SM4慢,而且SM2不太适合对长消息进行加密,因为它只能对比较短的数据块进行加密,这

    2024年02月07日
    浏览(82)
  • 三步实现Java的SM2前端加密后端解密

    秦医如毒,无药可解。 话不多说,先上需要用到的 js文件下载链接   和   jsp前端代码 。 第一步: 下载两个必备的js文件——  crypto-js.js 、 sm2.js   。 它们的下载链接如下↓(该网页不魔法上网的话会很卡,毕竟github,建议卡的话就多重新加载几次,我差不多试了8次才进

    2024年02月04日
    浏览(52)
  • javascript实现SM2加密解密

    前提JavaWeb环境 前端代码 实现步骤 java

    2024年02月14日
    浏览(65)
  • 【vue+sm2】前端使用国密sm2,加解密

    1.第一步就是安装依赖 2.导入sm2 3.先定义私钥或者公钥,私钥是解密,公钥是加密 4.设置加密模式 5.解密的使用全码 6.加密的实现全码

    2024年02月16日
    浏览(49)
  • 国密SM2: 加解密实现 java代码完整示例

    目录  具体Java代码SM2算法加解密实现Demo: pom依赖引入 :  国家密码管理局于2010年12月17日发布了SM2算法,并要求现有的基于RSA算法的电子认证系统、密钥管理系统、应用系统进升级改造,使用支持国密SM2算法的证书。    基于ECC椭圆曲线算法的SM2算法,则普遍采用256位密钥

    2024年02月13日
    浏览(46)
  • 前端使用国密sm2和sm4进行加解密

    国密SM:国密算法,即国家商用密码算法。是由国家密码管理局认定和公布的密码算法标准及其应用规范,其中部分密码算法已经成为国际标准。如SM系列密码,SM代表商密,即商业密码,是指用于商业的、不涉及国家秘密的密码技术。 安装SM加密依赖 SM2 封装 将sm2的加密解密

    2024年02月08日
    浏览(60)
  • 前端国密加解密使用方法SM2、SM3、SM4

       国密算法,即国家商用密码算法。是由国家密码管理局认定和公布的密码算法标准及其应用规范,其中部分密码算法已经成为国际标准。如SM系列密码,SM代表商密,即商业密码,是指用于商业的、不涉及国家秘密的密码技术。      不多废话直接上干货 项目中 可能存在

    2023年04月09日
    浏览(51)
  • 前端使用国密SM4进行加密、解密

    前端/后端使用 国密SM4 进行加密/解密, 【注意】前后端配合加解密时,需要我们 自定义密钥 ,一般由后端提供 下载 sm4util 依赖 sm4util 依赖使用说明 使用 - ECB 模式加解密 后端代码参考:https://blog.csdn.net/qq_48922459/article/details/122130283 这种办法好像只能使用默认密钥 key,不能

    2023年04月23日
    浏览(55)
  • SM2国密算法加解密

    接口安全设计原则的一个点就是数据不能明文传输,除了https这个必须的请求外,接口数据加密也是一个重要的方式,下面介绍一下SM2国密算法加解密的使用方式。 这里我就针对目前前后端分离架构的方式来简单介绍一下如何正确使用 SM2 算法对数据进行加解密,介绍分为后

    2024年02月11日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包