作者 | 陈振哲
本来打算使用RVB2601实现一个形如RSA等的高级加密算法,但由于缺少大数库等原因无法完成,遂降级成最初级的凯撒加密,完成一个基本的密码交互框架。值得注意的是,aos自带加密库,也没有重新制造一个轮子的必要。
根据上一篇博文所示,目前关于输入键盘数据,我只实现到aos吞一个字符,输入到用户程序一个字符的程度,但是完全不影响实际的运行效果。
凯撒密码是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。下图所示为一个简单的凯撒加密的一个交互流程。
键盘输入顺序为:enter->a->enter->l->enter->i……,每个enter都被aos吞掉,以此类推。明文为ali,位移5位成为JUR,再位移5位回来还原明文ali。
该方案基于helloworld例程修改而来,该例程提供了所需的stdlib库等,核心代码如下所示,就是非常简单的交互逻辑:
int main(void)
{
board_yoc_init();
LOGD(TAG, "%s\n", aos_get_app_version());
oled_init();
char str[3],numc;
int num;
for(int i=0;i<3;i+