低功耗4G模组:RSA算法示例
今天我们学习合宙低功耗4G模组Air780EP_LuatOS_rsa示例,文末【阅读原文】获取最新资料。
一、简介
RSA算法的安全性基于:将两个大质数相乘很容易,但是想要将其乘积分解成原始的质数因子却非常困难。
关联文档和使用工具:
LuatOS 固件获取
rsa-demo
Luatools下载调试工具
开发板Core_Air780EP使用说明
二、 材料准备
2.1 Air780EP开发板一套
三、程序介绍
API说明
RSA加密
rsa.encrypt(key, data)
参数
传入值类型 | 解释 |
string |
公钥数据,仅支持PEM格式 |
string |
待加密数据, 不能超过公钥位数的一半, 例如 2048bit的公钥, 只能加密128字节的数据 |
返回值
返回值类型 | 解释 |
string |
加密成功后的数据,若失败会返回nil |
RSA解密
rsa.decrypt(key, data, pwd)
参数
传入值类型 | 解释 |
string |
私钥数据,仅支持PEM格式 |
string |
待解密数据 |
string |
私钥的密码,可选 |
返回值
返回值类型 | 解释 |
string |
解密成功后的数据,若失败会返回nil |
计算sha1值
crypto.sha1(str)
参数
传入值类型 | 解释 |
string |
需要计算的字符串 |
返回值
返回值类型 | 解释 |
string |
计算得出的sha1值的hex字符串 |
RSA签名
rsa.sign(key, md, hash, pwd)
参数
传入值类型 | 解释 |
string |
私钥数据,仅支持PEM格式 |
int |
签名模式, 例如 rsa.MD_SHA1 , rsa.MD_SHA256 |
string |
hash数据, 如果是HEX字符串,记得fromHex转二进制数据 |
string |
私钥密码, 可选 |
返回值
返回值类型 | 解释 |
string |
成功返回sig数据, 否则返回nil |
RSA验签
rsa.verify(key, md, hash, sig)
参数
传入值类型 | 解释 |
string |
公钥数据,仅支持PEM格式 |
int |
签名模式, 例如 rsa.MD_SHA1 , rsa.MD_SHA256 |
string |
hash数据, 如果是HEX字符串,记得fromHex转二进制数据 |
string |
sig数据, 如果是HEX字符串,记得fromHex转二进制数据 |
返回值
返回值类型 | 解释 |
bool |
有效返回true,否则为false,出错返回nil |
四、程序demo讲解
4.1 rsa加密
读取文件public.pem中的公钥然后加密数据。
4.2 rsa解密
读取privkey.pem文件中的私钥,然后采用rsa解密数据
4.3 计算字符串的sha1值
4.4 签名
读取privkey.pem中的私钥数据(仅支持PEM格式),采用rsa.MD_SHA1模式签名
4.5 验签
读取public.pem文件中的公钥数据,采用rsa.MD_SHA1模式验签
五、效果展示
5.1 下载固件和脚本
5.2 效果展示
低功耗4G模组:RSA算法示例的更多相关文章
- RSA算法原理与加密解密 求私钥等价求求模反元素 等价于分解出2个质数 (r*X+1)%[(p-1)(q-1)]=0
Rsapaper.pdf http://people.csail.mit.edu/rivest/Rsapaper.pdf [概述Abstract 1.将字符串按照双方约定的规则转化为小于n的正整数m, ...
- 手把手教你基于luatos的4G(LTE Cat.1)模组接入华为云物联网平台
摘要:本期文章采用了4G LTE Cat.1模块,编程语言用的是lua,实现对华为云物联网平台的设备通信与控制 本文分享自华为云社区<基于luatos的4G(LTE Cat.1)模组接入华为云物 ...
- 加密算法——RSA算法(c++简单实现)
RSA算法原理转自:https://www.cnblogs.com/idreamo/p/9411265.html C++代码实现部分为本文新加 RSA算法简介 RSA是最流行的非对称加密算法之一.也被 ...
- 跨越千年的RSA算法
转载自http://www.matrix67.com/blog/archives/5100 数论,数学中的皇冠,最纯粹的数学.早在古希腊时代,人们就开始痴迷地研究数字,沉浸于这个几乎没有任何实用价值的 ...
- RSA算法基础详解
. 首页 博客园 联系我 前言:在RSA诞生之前. RSA算法. 质数与互质数. 模运算. 同余. 欧拉函数. 欧拉定理与模反元素. 真实的例子. 计算密钥. 密钥组成与加解密公式. 安全性. 一点感 ...
- 这个发现是否会是RSA算法的BUG、或者可能存在的破解方式?
笔者从事各种数据加解密算法相关的工作若干年,今天要说的是基于大数分解难题的RSA算法,可能有些啰嗦. 事情的起因是这样的,我最近针对一款芯片进行RSA CRT解密的性能优化.因为期望值是1024bit ...
- AES算法,DES算法,RSA算法JAVA实现
1 AES算法 1.1 算法描述 1.1.1 设计思想 Rijndael密码的设计力求满足以下3条标准: ① 抵抗所有已知的攻击. ② 在多个平台上速度快,编码紧凑. ③ 设计 ...
- RSA算法知识
摘自http://www.cfca.com.cn/zhishi/wz-012.htm RSA加密算法是最常用的非对称加密算法,CFCA在证书服务中离不了它.但是有不少新来的同事对它不太了解,恰好看到一 ...
- [转载]RSA算法详解
原文:http://www.matrix67.com/blog/archives/5100 数论,数学中的皇冠,最纯粹的数学.早在古希腊时代,人们就开始痴迷地研究数字,沉浸于这个几乎没有任何实用价值的 ...
- 加解密 3DES AES RSA 简介 示例 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
随机推荐
- 记一个文件过大导致git失败的修复方法
原因: 测试文件流时候弄了个安装包进去,结果太大了 解决方法: 参考蓝色行,先取到故障的文件名 然后 git filter-branch --tree-filter 'rm -f 文件名' --tag ...
- C 语言头文件作用的简单理解
C 语言是一种先声明后使用的语言. 举个例子: 如果你要在 main() 函数里调用一个你的函数 foo(),那么你有两种写法: 将 foo() 的定义写在 main() 之前.此时 foo() 的声 ...
- Spark 知识
Spark 学习 Spark(一): 基本架构及原理 https://www.cnblogs.com/xing901022/p/8260362.html https://www.cnblogs.com ...
- JavaScript之Blob对象基本用法及分片上传示例
Blob基本用法 创建 通过Blob的构造函数创建Blob对象: new Blob(blobParts[, options]) blobParts: 数组类型, 数组中的每一项连接起来构成Blob对象 ...
- AI将诗意装进口袋!合合信息扫描全能王“扫描书籍”功能优化上线
人间最美四月天,正是读书好时节.4月20日至23日,正值"世界读书日"之际,合合信息旗下扫描全能王联合上海首家图像小说主题书店--安古莱姆书店,共同发起"春天正是读书天& ...
- 04. 寻找两个正序数组的中位数 Golang实现
题目: 给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2.请你找出并返回这两个正序数组的 中位数 . 算法的时间复杂度应该为 O(log (m+n)) . 示例 1: ...
- Vscode 远程切换Python虚拟环境
在VSCode中远程切换Python虚拟环境是一个涉及多个步骤的过程,包括安装必要的扩展.连接到远程服务器.创建或激活虚拟环境,并在VSCode中选择相应的Python解释器.以下是一个详细的步骤指南 ...
- nexus 部署与设置
安装nexus df -h 先查看目录磁盘空间,我安装的版本占用了四个G 空间,目录文件空间不够导致启动失败 上传 nexus 压缩包,并解压 查询 8081 端口号是否被占用 sudo netsta ...
- 直播预告 | YashanDB 2023年度发布会正式定档11月8日,邀您共同见证国产数据库发展实践!
11月8日,YashanDB 2023年度发布会将于云端直播开启,发布会以 「惟实·励新」 为主题,邀请企业用户.合作伙伴.广大开发者共同见证全新产品与解决方案.届时发布会将在墨天轮社区同步进行,欢迎 ...
- nextjs 的函数,参数,属性装饰器的使用
// 属性装饰器 const doc1:PropertyDecorator = (target:any,val: string | symbol) => { console.log(target ...