国密算法 SM2 nodejs 版本
简介
Node.js 版本的国密算法 SM2 实现,一共提供3个接口。
- /keypair/generate:生成私钥和公钥对
- /encrypt/sm2:使用公钥加密字符串
- /decrypt/sm2:使用私钥解密加密字符串
服务使用
进入主模块 sm2-express-server.js
所在的根目录,使用 npm install
安装所需依赖模块。
安装好后,使用 node sm2-express-server.js
启动服务。根目录提供了两个版本的启动脚本,在 windows 下可以直接双击 startup.bat
来启动,如果是 linux,可以执行 startup.sh
来启动服务。
本代码服务依赖 nodejs,如果你对 nodejs 不熟悉,或者没有安装 nodejs,可以参考 Node.js 安装环境和简单实用教程 来安装使用。
当然你也可以自己改造代码。
接口演示
这里演示使用国密算法加解密字符串 https://www.daimafans.com 代码饭
。
服务启动后默认 IP 为 127.0.0.1
,端口为 9118
,接口均为 POST
请求。
/keypair/generate:生成私钥和公钥对
首先获取私钥和公钥对,请求地址为 http://127.0.0.1:9118/keypair/generate
。
公钥和私钥对以 json 形式的数据返回:
{
"privateKey":"b7e918ebdf51c72d43956d8696108f38b763b701b41a731a1c4826d5cf166513",
"publicKey":"04eed637fd5f171002aa5dbc29075c7d0373294294063bcce322a6501e0c17382696ed442b2882901182ce8a3975a9b20b3ec5119f10b1d42843a4c5fad658b33b"
}
/encrypt/sm2:使用公钥加密字符串
使用刚刚生成的公钥字符串 04eed637fd5f171002aa5dbc29075c7d0373294294063bcce322a6501e0c17382696ed442b2882901182ce8a3975a9b20b3ec5119f10b1d42843a4c5fad658b33b
来加密字符串 https://www.daimafans.com 代码饭
。
使用 Postman
新建 POST
请求 http://127.0.0.1:9118/encrypt/sm2
,在 Body
项中选择 raw
, 数据类型选择 JSON(application/json)
,数据填写:
{
"key":"04eed637fd5f171002aa5dbc29075c7d0373294294063bcce322a6501e0c17382696ed442b2882901182ce8a3975a9b20b3ec5119f10b1d42843a4c5fad658b33b",
"data":"https://www.daimafans.com 代码饭"
}
key
为公钥,data
为将要加密的字符串,点击 Send
发送请求。
得到加密串 04d57c3142717c2173d74cfe6d8befd2dbe23b463053026d91aaf5febe91b9002893618db7c921fe4b5a7fc2edd4f26177aeb3ce4e6abd310fef75c73de76a18ffa0fd47130df2952f4c9085fed4cba44858c93ca02832ffb2c87c64c8f82da73ebd23a773ae99b0535643fb681ec44449127ac660ae66879e47cc5f3024fbd6775fe6ca
。
/decrypt/sm2:使用私钥解密加密字符串
请求解密接口验证加密结果,使用 Postman
新建 POST
请求 http://127.0.0.1:9118/decrypt/sm2
,在 Body
项中选择 raw
, 数据类型选择 JSON(application/json)
,数据填写:
{
"key":"b7e918ebdf51c72d43956d8696108f38b763b701b41a731a1c4826d5cf166513",
"data":"04d57c3142717c2173d74cfe6d8befd2dbe23b463053026d91aaf5febe91b9002893618db7c921fe4b5a7fc2edd4f26177aeb3ce4e6abd310fef75c73de76a18ffa0fd47130df2952f4c9085fed4cba44858c93ca02832ffb2c87c64c8f82da73ebd23a773ae99b0535643fb681ec44449127ac660ae66879e47cc5f3024fbd6775fe6ca"
}
key
为私钥,data
为刚刚加密后的加密字符串,点击 Send
发送请求。
可以看到返回的字符串为 https://www.daimafans.com 代码饭
,正是我们加密的字符串,结果正确。
你好怎么下载不了,怎么联系你·
sqwerqweqw
123