本文主要是介绍LuatOS-SOC接口文档(air780E)-- gmssl - 国密算法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
sm.sm2encrypt(pkx,pky,data)#
sm2算法加密
参数
传入值类型 | 解释 |
---|---|
string | 公钥x,必选 |
string | 公钥y,必选 |
string | 待计算的数据,必选,最长255字节 |
返回值
返回值类型 | 解释 |
---|---|
string | 加密后的字符串, 原样输出,未经HEX转换 |
例子
local originStr = "encryption standard" local pkx = "435B39CCA8F3B508C1488AFC67BE491A0F7BA07E581A0E4849A5CF70628A7E0A" local pky = "75DDBA78F15FEECB4C7895E2C1CDF5FE01DEBB2CDBADF45399CCF77BBA076A42" local private = "1649AB77A00637BD5E2EFE283FBF353534AA7F7CB89463F208DDBC2920BB0DA0" local encodeStr = gmssl.sm2encrypt(pkx,pky,originStr) print(originStr,"encrypt",string.toHex(encodeStr)) log.info("testsm.sm2decrypt",gmssl.sm2decrypt(private,encodeStr))
sm.sm2decrypt(private,data)
sm2算法解密
参数
传入值类型 | 解释 |
---|---|
string | 私钥,必选 |
string | 待计算的数据,必选 |
返回值
返回值类型 | 解释 |
---|---|
string | 解密后的字符串,未经HEX转换 |
例子
local originStr = "encryption standard" local pkx = "435B39CCA8F3B508C1488AFC67BE491A0F7BA07E581A0E4849A5CF70628A7E0A" local pky = "75DDBA78F15FEECB4C7895E2C1CDF5FE01DEBB2CDBADF45399CCF77BBA076A42" local private = "1649AB77A00637BD5E2EFE283FBF353534AA7F7CB89463F208DDBC2920BB0DA0" local rand = "4C62EEFD6ECFC2B95B92FD6C3D9575148AFA17425546D49018E5388D49DD7B4F" local encodeStr = gmssl.sm2encrypt(pkx,pky,rand,originStr) print(originStr,"encrypt",string.toHex(encodeStr)) log.info("testsm.sm2decrypt",gmssl.sm2decrypt(private,encodeStr))
sm.sm3(data)
sm3算法,算HASH值
参数
传入值类型 | 解释 |
---|---|
string | 待计算的数据,必选 |
返回值
返回值类型 | 解释 |
---|---|
string | 对应的hash值 |
例子
local encodeStr = gmssl.sm3("lqlq666lqlq946") log.info("testsm.sm3update",string.toHex(encodeStr))
sm.sm3hmac(data, key)
sm3算法,算HASH值,但带HMAC
参数
传入值类型 | 解释 |
---|---|
string | 待计算的数据,必选 |
string | 密钥 |
返回值
返回值类型 | 解释 |
---|---|
string | 对应的hash值 |
例子
local encodeStr = gmssl.sm3hmac("lqlq666lqlq946", "123") log.info("testsm.sm3update",string.toHex(encodeStr))
gmssl.sm4encrypt(mode,padding,originStr,password)
SM4加密算法
参数
传入值类型 | 解释 |
---|---|
string | 加密模式, CBC或ECB |
string | 填充方式, NONE/ZERO/PKCS5/PKCS7 |
string | 加密的字符串 |
string | 密钥 |
返回值
返回值类型 | 解释 |
---|---|
string | 加密后的数据 |
例子
local originStr = "AES128 ECB ZeroPadding test" --加密模式:ECB;填充方式:ZeroPadding;密钥:1234567890123456;密钥长度:128 bit local encodeStr = gmssl.sm4encrypt("ECB","ZERO",originStr,"1234567890123456") print(originStr,"encrypt",string.toHex(encodeStr)) log.info("testsm.decrypt",gmssl.sm4decrypt("ECB","ZERO",encodeStr,"1234567890123456"))originStr = "AES128 ECB Pkcs5Padding test" --加密模式:ECB;填充方式:Pkcs5Padding;密钥:1234567890123456;密钥长度:128 bit encodeStr = gmssl.sm4encrypt("ECB","PKCS5",originStr,"1234567890123456") print(originStr,"encrypt",string.toHex(encodeStr)) log.info("testsm.decrypt",gmssl.sm4decrypt("ECB","PKCS5",encodeStr,"1234567890123456"))originStr = "AES256 CBC Pkcs5Padding test" --加密模式:CBC;填充方式:Pkcs5Padding;密钥:1234567890123456;密钥长度:256 bit;偏移量:1234567890666666 encodeStr = gmssl.sm4encrypt("CBC","PKCS5",originStr,"1234567890123456","1234567890666666") print(originStr,"encrypt",string.toHex(encodeStr)) log.info("testsm.decrypt",gmssl.sm4decrypt("CBC","PKCS5",encodeStr,"1234567890123456","1234567890666666"))
gmssl.sm4decrypt(mode,padding,encodeStr,password)
SM4解密算法
参数
传入值类型 | 解释 |
---|---|
string | 加密模式, CBC或ECB |
string | 填充方式, NONE/ZERO/PKCS5/PKCS7 |
string | 已加密的字符串 |
string | 密钥 |
返回值
返回值类型 | 解释 |
---|---|
string | 解密的字符串 |
例子
-- 参考gmssl.sm4encrypt
这篇关于LuatOS-SOC接口文档(air780E)-- gmssl - 国密算法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!