keil TEA
http://bbs.mydigit.cn/read.php?tid=545086
#include "reg52.h" void send_char(unsigned char txd);void printuf(char *str, unsigned char cb) ; void encrypt(unsigned long *v1, unsigned long *v2, unsigned long *k); /*tea加密函数定义*/ void decrypt(unsigned long *v1, unsigned long *v2, unsigned long *k); /*tea解密函数定义*/ unsigned long *key = (unsigned long *)"1234567890abcde\0"; /*常量密钥*/ unsigned ]; unsigned char i; void InitUART(void) { TMOD = 0x20; SCON = 0x50; TH1 = 0xFD; TL1 = TH1; PCON = 0x00; EA = ; ES = ; TR1 = ; } void main() { unsigned long *y1,*y2; tea[]=0x31; tea[]=0x32; tea[]=0x33; tea[]=0x34; tea[]=0x35; tea[]=0x36; tea[]=0x37; tea[]=0x38; InitUART(); ; i < ; i++) send_char(tea); send_char(); y1=(unsigned ]; y2=(unsigned ]; encrypt (y1,y2,key) ; ; i < ; i++) printuf("%x ",tea); send_char(); y1=(unsigned ]; y2=(unsigned ]; decrypt(y1,y2,key); ; i < ; i++) send_char(tea); send_char(); ) ; } void encrypt(unsigned long *v1, unsigned long *v2,unsigned long *k) { unsigned , i; unsigned long delta=0x9e3779b9; unsigned ], b=k[], c=k[], d=k[]; ; i < ; i++) { sum += delta; y += ((z<<) + a) ^ (z + sum) ^ ((z>>) + b); z += ((y<<) + c) ^ (y + sum) ^ ((y>>) + d); } *v1=y; *v2=z; } void decrypt(unsigned long *v1,unsigned long *v2, unsigned long *k) { unsigned long y=*v1, z=*v2, sum=0xC6EF3720, i; unsigned long delta=0x9e3779b9; unsigned ], b=k[], c=k[], d=k[]; ; i<; i++) { z -= ((y<<) + c) ^ (y + sum) ^ ((y>>) + d); y -= ((z<<) + a) ^ (z + sum) ^ ((z>>) + b); sum -= delta; } *v1=y; *v2=z; } // 传送一个字符 void send_char(unsigned char txd) { SBUF = txd; while(!TI); // 等特数据传送 TI = ; // 清除数据传送标志 } // *str内容中遇到%x的内,就会从cb中的值转成十六进显示 开始 code ] = {', 'A', 'B', 'C', 'D', 'E', 'F'}; void printuf(char *str, unsigned char cb) //*str内容中遇到%x的内,就会从cb中的值转成十六进显示 { idata char *ct = str; idata char cx1; idata char cx2; while (*ct != '\0') { if (*ct == '%') { ) == 'x') { ct += ; cx1 = cb / ; cx2 = cb % ; send_char (hex[cx1]); send_char(hex[cx2]); continue; } ) == 'c') { ct += ; send_char(cb); continue; } } if (*ct == '\n') { send_char(); } send_char(*ct); ct++; } } // *str内容中遇到%x的内,就会从cb中的值转成十六进显示 结束
keil TEA的更多相关文章
- TEA encryption with 128bit key
If anyone needs some basic encryption in software, here's one solution. This TEA implementation fits ...
- [转]keil使用详解
第一节 系统概述 Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上.结构性.可读性.可维护性上有明显的优势,因而易学易用.用过 ...
- 安装keil MDK5
昨天买的stm32板子今天就到了,顺丰速度确实很快. 我这是刚开始整STM32,首先需要下载keil MDK,直接杀去keil官网下载,其实对于学习者,我建议大家下载软件能去官网就去官网,尽量少用二道 ...
- 使用powershell批量添加Keil和IAR的头文件路径
在Keil和IAR的工程中,为了使文件结构清晰,通常会设置很多的子文件夹,然后将头文件和源文件放在不同的子文件夹中,这样就需要手动添加这些头文件夹的路径.当工程结构非常复杂时,文件夹的数量就非常多,特 ...
- MDK for ARM (keil) 编译后的信息
文章转自http://blog.csdn.net/gasbi/article/details/6186312 当我们使用Keil对我们的代码进行编译之后,下方Build Output窗口会出现:Pro ...
- Keil环境中建立带FreeRTOS的STM32L项目
本文是网上转载,版权所有. Keil环境中建立带FreeRTOS的STM32L项目 1.先把source文件夹复制至project目录,然后在keil中添加RTOS文件,如图: 其中heap_2.c按 ...
- KEIL中启动文件详解(汇编语言)
原文在此:http://www.cnblogs.com/mddblog/p/4920063.html 概述 在嵌入式系统中,启动文件是整个系统非常关键的部分,它会进行一些底层的初始化,构建程序运行必要 ...
- ARM 开发工具 Keil和DS-5的比较。
http://www.eeboard.com/bbs/thread-25219-1-1.html 如今ARM体系架构的处理器在嵌入式市场上呼风唤雨,从低端的MCU应用到高端的多媒体消费电子,移动设备领 ...
- 新手入门 keil MDK5 建立STM32工程
keil uvison 是用来开发 单片机的,Keil mdk 是用来开发 ARM 的. 芯片型号是:STM32F103RB6 1,新建工程 配置属性 晶振为8M 根据实际晶振选择 生成 HEX 文件 ...
随机推荐
- htpasswd.cgi 网页远程修改gerrit ht 认证的密码文件
在搭建gerrit系统时,一般都会采用apache的.htacces 认证方法 但trac本身并不提供修改密码的功能,修改密码只能通过htpasswd/htpasswd2命令来进行,这的确是一件相当不 ...
- ajax 调用后台接口示例
$(function(){ var _del_time_list = $("select[name='del_time_list']"); var _del_table_name ...
- 【转】git 学习笔记( 随时更新中…… 最后更新日期201304281518)--不错
原文网址:http://blog.csdn.net/yasin_lee/article/details/5975070 GIT 是版本管理的未来! 推荐几个GIT教程网站 http://www-c ...
- structs2使用小结2
回顾之前做过类似structs2的知识点总结 Structs2历史.处理流程及与1.0版本的区别 Structs2配置文件.拦截器.校验等 EL表达式在JS中使用 ${}El表达式不能直接在单独JS文 ...
- 3 Sum Closest 解答
Question Given an array S of n integers, find three integers in S such that the sum is closest to a ...
- Yii2 分页类的扩展和listview引用
Yii2 本身提供了不错分页选项供用户设置,但是实际项目中我们往往需要复杂一些的分页样式,例如下图所示的效果,上下翻页可用和不可用均用图标来替换.
- Angular学习笔记(2)——TODO小应用
Angular学习笔记(2)--TODO小应用 1. 写在前面 之前我们跑了Angular的Hello World,你是不是对它有点感觉了呢?这一篇将结合一个TODO程序来继续学习Angular的用法 ...
- 达到XML简单的动态配置
今天写的XML相关内容:随着上述眼前的小项目(等级类别)由于地图每个级别.因此,让他动态读取XML内容,这样的变化只能看到XML档. 简单的想法:第一次使用UserDefault类写入文件 UserD ...
- js转换ascii编码如中文友转换为编码友;可防止乱码
- RequireJs 深入理解
原文 http://www.tuicool.com/articles/jam2Anv RequireJs已经流行很久了,我们在项目中也打算使用它.它提供了以下功能: 声明不同js文件之间的依赖 可 ...