iOS开发之 异或加密的原理详解
2016-06-14 11:58
423 查看
异或的运算方法是一个二进制运算:
1^1=0
0^0=0
1^0=1
0^1=1
两者相等为0,不等为1.
对于一个字符来说,都可以用二进制码来表示.如A:01000001
字符的异或就是对每一位进行二进制运算.
用于加密算法时,假设你要加密的内容为A,密钥为B,则可以用异或加密:
C=A^B
在数据中保存C就行了.
用的时候:
A=B^C
即可取得原加密的内容,所以只要知道密钥,就可以完成加密和解密.
#include <stdio.h>
main()
{
char a[]="MyPassword"; /*要加密的密码*/
char b[]="cryptographic"; /*密钥*/
int i;
/*加密代码*/
for(i=0;a[i]!='\0';i++)
a[i]=a[i]^b[i];
printf("You Password encrypted: %s\n",a);
/*解密代码*/
for(i=0;a[i]!='\0';i++)
a[i]=a[i]^b[i];
printf("You Password: %s\n",a);
}
1^1=0
0^0=0
1^0=1
0^1=1
两者相等为0,不等为1.
对于一个字符来说,都可以用二进制码来表示.如A:01000001
字符的异或就是对每一位进行二进制运算.
用于加密算法时,假设你要加密的内容为A,密钥为B,则可以用异或加密:
C=A^B
在数据中保存C就行了.
用的时候:
A=B^C
即可取得原加密的内容,所以只要知道密钥,就可以完成加密和解密.
#include <stdio.h>
main()
{
char a[]="MyPassword"; /*要加密的密码*/
char b[]="cryptographic"; /*密钥*/
int i;
/*加密代码*/
for(i=0;a[i]!='\0';i++)
a[i]=a[i]^b[i];
printf("You Password encrypted: %s\n",a);
/*解密代码*/
for(i=0;a[i]!='\0';i++)
a[i]=a[i]^b[i];
printf("You Password: %s\n",a);
}
相关文章推荐
- IOS AFNetWorking 3.0用法步骤详解
- ios 形变属性—transframe
- iOS开发-- 利用AVPlayer播放远程音乐和视频
- ios模块化设计(读大众点评模块化文档后的感想)
- iOS 读写plist文件(Date的存储有些怪异,原因不详)
- iOS 圆角那些事
- iOS开发--触摸事件、手势识别、摇晃事件、耳机线控
- 减小iOS应用程序的大小
- iOS拨打电话的方式
- iOS开发Keychain简单的使用
- iOS中创建文件目录时候存储路径的一些注意点
- IOS不支持中文斜体
- iOS存储数据字典(用户信息)到沙盒
- iOS 10 正式降临,10 大改变!
- iOS开发融云即时通讯集成详细步骤
- iOS 持续集成- xctool 安装、使用
- 彻底理解position与anchorPoint
- iOS围绕某点缩放或旋转的AnchorPoint的设定
- iOS-查看真机沙盒文件(利用Xocde)+模拟器查看沙盒文件
- 缩回iOS键盘