低功耗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 ...
随机推荐
- cubeide汉化包地址
http://mirrors.ustc.edu.cn/eclipse/technology/babel/update-site 具体步骤看洋桃物联网入门30步的视频
- 理解async 和 await
await 后面接的是promise,await语句下面(注意:不是await后面,而是await所在语句的下面,即下行以后)的代码就相当在promise.then()里面执行,有文章说 await后 ...
- 【YashanDB数据库】Ubuntu系统加载Yashan C驱动后无法使用PHP
[问题分类]驱动使用 [关键字]驱动使用.PHP.Ubuntu.C驱动 [问题描述] 客户将YashanDB的C驱动lib加载到环境变量LD_LIBRARY_PATH后,PHP报错:PHP Fatal ...
- sicp每日一题[1.42]
Exercise 1.42 Let f and g be two one-argument functions. The composition f after g is defined to be ...
- 全面升级,票据识别新纪元:合合信息TextIn多票识别2.0
票据识别 - 自动化业务的守门员 发票.票据识别,是OCR技术和RPA.CMS系统结合的一个典型场景,从覆盖率.覆盖面的角度来说,应该也是结合得最成功的场景之一. 旧瓶装新酒,已经成熟的产品何苦费 ...
- 反DDD模式之关系型数据库
本文书接上回<图穷匕见-所有反DDD模式都是垃圾>,关注公众号(老肖想当外语大佬)获取信息: 最新文章更新: DDD框架源码(.NET.Java双平台): 加群畅聊,建模分析.技术实现交流 ...
- HTTP——响应数据格式
HTTP响应数据格式 状态码分类: 常见的状态响应码:
- 编写自己的简易版网络协议栈(1)--arp协议,使用wireshark抓包分析
实验环境: 略. 实验背景:已编写好基于以太网接口的输入处理,能够解析到以太网数据包内的帧类型. 1. 协议栈底层采用轮询方式,即轮询以太网数据包. 2. 若收到数据,则交由以太网输入处理模块进行解析 ...
- 2.2.2 PyTorch 2.0 GPU NVIDIA运行库的安装 ——CUDA+cuDNN安装教程
参考文章: https://blog.csdn.net/mbdong/article/details/121769951 CUDA download: https://developer.nvidia ...
- Hadoop完全分布式搭建,基于乌班图系统
因为现在集成的工具很多,建议在接触这一块的过程中还是自己找几个主机,亲手搭一遍集群,更好的熟悉底层!本文只是搭建的过程没有理论!手搭集群时先将各节点网络.ssh配置好!然后在一台机子上操作配置文件,直 ...