各位大侠在做数据传输时,有没有考虑过把数据加密起来进行传输,若在串口或者无线中把所要传的数据加密起来,岂不是增加了通信的安全性.常用的加密解密算法比如DES.RSA等,受限于单片机的内存和运算速度,实现起来比较困难,但一种叫TEA的加密算法特别适合单片机使用. TEA(Tiny Encryption Algorithm)是一种简单高效的加密算法,以加密解密速度快,实现简单著称.算法很简单,TEA算法每一次可以操作64-bit(8-byte),采用128-bit(16-byte)作为key,算法采…
源:单片机上使用TEA加密通信 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 环境: 主机:WIN7 开发环境:MDK4.72 单片机:STM32 说明: 在项目中单片机会与服务器进行网络通讯.需要对通讯加密,我选择了TEA加密算法. 源码: tea.h /********************************************************************* * TEA算法头文件 * (c)copyright…
原本到了睡觉的时间,但是做完了SSL的笔记还有GCC和Oracle等的好多的笔记,所以刻苦一点. The Priciple of Encryption/Decryption --conventional encryption 上节成功的安装好了openssl安全库,下面就进入一些加解密的理论的学习,有关的权威的书籍<应用密码学:协议.算法与C源程序> 作者:Bruce Schneier整个加密的过程就是一种数学的变换:对应的数学表示: 加密时,f1是加密的函数变换,它的输入是明文和口令,解密时…
QQ通讯协议里的加解密算法. #include <stdio.h> #include <stdlib.h> #include <memory.h> #include <string.h> #include <time.h> //#define CRYPT_ONE_BYTE typedef char int8 ; typedef unsigned char uint8 ; typedef short int16 ; typedef unsigned…
困死了,这里对非对称加密体系开个头,具体的实验明天写 非对称加密体系 为了解决对称加密中密钥的传输的问题,一些天才的数学家就提出了非对称式的加密体系,也称为公钥加密体系. 加密和解密的密钥是不同的.一把称为公钥,一把称为私钥. 比如,甲.乙.丙三个人要给丁发送信息,但是他们都不想让另外的两个人知道信息的内容. 首先丁要散布自己的公钥给甲.乙.丙,让地球人都知道他的公钥,若甲要给丁发送信息,那么甲就用丁的公钥加密数据,由于在这种加密体系中公钥只能加密,私钥只能解密,所以乙丙等任何人都不能解密,只有…
php加密拓展库随着php版本的更新,函数的使用方法有所改变,所以加密模式推荐使用ecb,其中加密算法19种,加密模式8种,通过这种方式加密后的数据上传数据库后提取出来进行解密会发现结果是乱码,我认为这是由于进制的不同所引起的,比如以des加密算法加密返回的是十六进制,而数据库是以十进制的形式存在的,我的解决方法是用base64_encode()进行加密,然后才存入数据库,提取数据时用base_decode()解密…
TEA(Tiny Encryption Algorithm)是一种小型的对称加密解密算法,支持128位密码,与BlowFish一样TEA每次只能加密/解密8字节数据.TEA特点是速度快.效率高,实现也非常简单,用C语言实现TEA加密/解密算法只需26行代码.由于针对TEA的攻击不断出现,所以TEA也发展出几个版本,分别是XTEA.Block TEA和XXTEA. TEA加密和解密时都使用一个常量值,这个常量值为0x9e377b9,这个值是近似黄金分割率,注意,有些编程人员为了避免在程序中直接出现…
怎么对一个大的文件进行签名,因为文件比较大,非对称签名很慢.那么想,我能把这个大的文件通过一种函数变换,变成一个和源文件唯一对应的的小的文件吗?答案是可以的. Hash Function 这里任何的文件都抽象成一个字节流X. Y就是变换后的结果,他和X有一一对应的关系,也称Y为X的特征码. f就是一种变换关系,称为Hash Function,这种变换是不可以的,即给定X很容易得到Y:但是给定Y一般无法得到X. 并且这种Hash Function还有一个特性,就是对于输入的X,只要稍微改动,输出的…
Web应用中往往涉及到敏感的数据,由于HTTP协议以明文的形式与服务器进行交互,因此可以通过截获请求的数据包进行分析来盗取有用的信息.虽然https可以对传输的数据进行加密,但是必须要申请证书(一般都是收费的),成本较高.那么问题来了,如果对web提交的敏感数据进行加密呢?web应用中,前端的数据处理和交互基本上都是靠javascript来完成,后台的逻辑处理可以C#(java)等进行处理. 微软的C#中虽然有RSA算法,但是格式和OpenSSL生成的公钥/私钥文件格式并不兼容.这个也给贯通前后…
如上图所示,我怎么能确定我手里的公钥就是我心中的接收方的公钥呢?怎么防止被钓鱼呢? 解决的办法就是引入一个第三方,一个权威机构,一个我们都相信的机构. 验证公钥,Digital Certificate 显然,这不是一个用技术所能解决的问题,很好的解决办法就是建立一个中介,我们所有的人都相信这个中介,中介对接收方的公钥的合法性进行认证,在接收方的公钥上签名,这样发送方在相信中介的基础上就能安全的给接收方发送信息了. 具体的做法就是:中介要求接收方在他这里注册,验证其公钥,然后中介对接收方的公钥进行…