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 文件 ...
随机推荐
- 无人参与安装IIS 6.0
使用脚本安装 IIS 从“开始”菜单,单击“运行”. 在“打开”框中,键入 cmd,然后单击“确定”. 在命令提示符下,键入 Sysocmgr.exe /i:sysoc.inf /u:%path_to ...
- margin:0 auto 与 text-align:center 的区别(转载)
摘自:http://www.cnblogs.com/zhwl/p/3529473.html 基本概念: 1.text-align: 属性规定元素中的文本的水平对齐方式; 该属性通过指定行框与哪个点 ...
- time date 基础操作
一. 获取当前系统时间和日期并格式化输出: import java.util.Date;import java.text.SimpleDateFormat; public class NowStrin ...
- C++中,访问字符串的三种方法
1.用字符数组存放一个字符串 程序1:定义一个字符数组并初始化,然后输出其中的字符串. #include<iostream> using namespace std; int main() ...
- CI框架源代码阅读笔记3 全局函数Common.php
从本篇開始.将深入CI框架的内部.一步步去探索这个框架的实现.结构和设计. Common.php文件定义了一系列的全局函数(一般来说.全局函数具有最高的载入优先权.因此大多数的框架中BootStrap ...
- Android加载图片OOM错误解决方式
前几天做项目的时候,甲方要求是PAD (SAMSUNG P600 10.1寸 2560*1600)的PAD上显示高分辨率的大图片. SQLITE採用BOLD方式存储图片,这个存取过程就不说了哈,网上一 ...
- LR使用Java User协议环境报错Please add the <JDK>\bin to the path and try again
看标题报错信息就知道,这是java编译及运行环境配置问题,运行LR脚本时,LR代理找不到java的JDK环境,当然,可能有人会遇到说,我在cmd窗口javac 环境是没问题的呀,是的,这就要看你的jd ...
- SQL Server -SET ANSI_NULLS
当ANSI_NULLS 为ON时,遵循SQL92的标准,只能使用IS NULL 来判断值是否为NULL, 而不能使用=或<>来与NULL做比较,任何值包括NULL值与NULL值做=或< ...
- Sql server 数据库 单用户切换为多用户
使用master 下的sysprocesses 查询 db正在使用的spid 如 select spid from sysprocesseswhere dbid=DB_ID('DbName') 然后执 ...
- UGUI学习之InputField
密码框在Context type 设置为Passwold 设置背景和调整字体颜色与透明度. 还有一个就是Toggle,(开关)要指定他的Graphic.