低功耗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 ...
随机推荐
- 关于Arrays.asList返回List无法新增和删除?
关于Arrays.asList返回的List无法新增和删除? 这个是在写项目的时候发现的,然后就分析了一下源码,得其内部原理 复现代码示例: public class ArraysAsList { p ...
- k8s中文文档
地址:http://docs.kubernetes.org.cn/122.html
- Mac 打开软件提示‘“xxx”已损坏,无法打开。您应该将它移到废纸篓。’解决方法
产生错误的原因是软件没有签名.使用下面的命令给软件签名就好了. sudo xattr -rd com.apple.quarantine /Applications/xxx.app
- P 问题和 NP 问题的简单理解
P/NP问题 | 维基百科 P 问题 P 问题的定义是:所有可以由一个确定型图灵机在多项式表达的时间内解决的问题 P 代表 Polynomial-time (adj. 多项式时间) 简单理解:答案可以 ...
- Spark - Pandas UDF
spark 本身对 dataframe 的操作支持没有像pandas 那样强大,所有我们可以把spark dataframe 转化成 pandas dataframe 来利用pandas datafr ...
- Git Extensions:一个.NET开源的 Git 图形用户界面(GUI)工具
前言 今天大姚给大家分享一个.NET开源.免费的用于管理 Git 存储库的独立图形用户界面(GUI)工具,它还与 Windows 资源管理器和 Microsoft Visual Studio (201 ...
- 76.最小覆盖子串 Golang实现
题目描述: 给你一个字符串 s .一个字符串 t .返回 s 中涵盖 t 所有字符的最小子串.如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 "" . 注意: 对于 t ...
- 什么是SPA页面,它的优缺点?
什么是SPA spa是单页面应用(single page web application),浏览器会一开始就加载所需要的html.css.javascript.一旦页面加载完毕,整个页面就不会因为用户 ...
- 复用对评论和对文章回复的弹层 popup- vant2
基本样式: ps:当message 即输入的内容的长度为 0 的时候,按钮禁止使用 : <template> <div class="comment-post"& ...
- MYSQL存储过程-练习5 游标
MYSQL存储过程-练习5 游标 1 DELIMITER $ 2 CREATE PROCEDURE sp_cur() 3 BEGIN 4 DECLARE bkname VARCHAR(200); 5 ...