低功耗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 ...
随机推荐
- 【Mac + Appium + Java1.8(二)】之Android模拟器自动化测试脚本开发以及简易例子
直接上代码: import io.appium.java_client.AppiumDriver; import org.junit.After; import org.junit.Before; i ...
- mybatis-plus批量增加、批量修改样例+建表语句+postman接口
使用mybatis-plus开发中会遇到数据量多的情况下,插入和修改效率低,主要原因是"新增"和"修改"方法是对一条数据进行处理的,如果有一万条数据就会和数据库 ...
- 十种SQL的语法
一.ORDER BY FIELD()自定义排序逻辑 ORDER BY FIELD(str,str1,...) 自定义排序sql如下: SELECT * from order_diy ORDER BY ...
- manim边学边做--空心多边形
空心的多边形Cutout是一种比较特殊的多边形,主要用于解决与形状.大小.位置等相关的数学问题. Cutout多边形可以定义物体表面的空洞或凹陷部分,从而更准确地模拟现实世界中的复杂形状. 比如,在P ...
- 音视频入门-6-ffmpeg小实验-从v4l2层获取PC ubuntu摄像头图像
0. 进行本代码实验的前提 确保已经在ubuntu内正确安装了ffmpeg 手把手安装教程可以参考我的另一篇博文<音视频入门-4-ffmpeg命令快速体验音视频开发/ ffmpeg编译过程经历的 ...
- 第43天:WEB攻防-PHP应用&SQL注入&符号拼接&请求方法&HTTP头&JSON&编码类
#PHP-MYSQL-数据请求类型 SQL语句由于在黑盒中是无法预知写法的,SQL注入能发成功是需要拼接原SQL语句,大部分黑盒能做的就是分析后各种尝试去判断,所以有可能有注入但可能出现无法注入成功的 ...
- 【赵渝强老师】Kubernetes的探针
Kubernetes提供了探针(Probe)对容器的健康性进行检测.实际上我们不仅仅要对容器进行健康检测,还要对容器内布置的应用进行健康性检测. Probe有以下两种类型: livenessProbe ...
- USB2.0 USB3.0 供电情况及规定
USB(通用串行总线)的不同版本在供电能力和规定上有所不同.以下是关于USB 2.0.USB 3.0和USB 3.1供电情况的详细信息: USB 2.0 最大供电电流: 500毫安 (mA) 最大供电 ...
- kotlin更多语言结构——>This表达式
This表达式 为了表示当前的 接收者 我们使用 this 表达式: - 在类的成员中,this指的是该类的当前对象. - 在扩展函数或者带有接收者的函数字面值中,this 表示在点左侧传递的 接收者 ...
- 2024年开源API工具盘点,覆盖API全生命周期
2024年经济持续低迷,本文整理一些免费的开源工具,旨在帮助企业组织降低工具的支出成本,能用免费的何必用付费的呢(狗头)? 如何高效地管理API的全生命周期--从设计.开发.测试.部署到监控和优化,已 ...