软件开发中的密码学

软件开发中的密码学

简介

密码学, 最初来自于军事之中, 以前的密码都是使用密码本来加密解密的, 如果密码本被别人知道,, 密码基本上就是泄露了, 1977年RSA发明了一套算法叫做RSA加密算法, 现在很多的加密算法诸如DES,AES都是在RSA算法的基础上衍生出来的, 安全性还是比较高的.

base64加密算法

维基百科 https://en.wikipedia.org/wiki/Base64
base64加密算法, 密文中共有64种字符, a-z, A-Z, 0-9,+,/, 还包括一个补充字符’=’, 如下图(图片来自wikipedia):
base64字符表
加密过程是这样的:
如下图所示, 如给Man三字字母加密, 三个字母转换成对应ASSIC码, M->77, a->97,n->110, 转换成二进制后如下图所示, 每个ASSIC码转换成了8位的二进制数, 然后再对二进制数,取每六位,再转换成ASSIC码, 这样形成的一个新的字符串就是加密后的密文, 如Man加密后是 TWFu, 如果最后剩余的数字不足六位则补=, 一个=代表两个零,
base64加密算法
我对base64加密的理解, 由于base64加密算法是完全公开的,并且是可解密的, 所以如果网络传输使用base64还是不太安全的, 除非把base64加密的排序完全打乱, 自己约定一套加解密的顺序, 这样还是比较安全的, 不过这样还是可以破解的.
ios7,mac_10.9以后开始支持base64加密, 使用base64加解密的方法如下所示(iOS7以前需要自己写加密算法):

//base64机密过程
- (NSString *)base64Encode:(NSString *)str {
    NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];

    return [data base64EncodedStringWithOptions:0];
}

//base64解密过程
- (NSString *)base64Decode:(NSString *)str {
    NSData *data = [[NSData alloc] initWithBase64EncodedString:str options:0];

    return [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
}

使用base64的加密方式, 可以将图片,视频等二进制的数据转换成字符串来传输, 对于要求必须使用字符串传输数据的时候, 可以考虑讲数据使用base64加密之后传输, 在服务器端进行解密.

MD5

在国内, 加解密用的最多的还是md5, 加盐的方式, 这种方式安全性还是比较高的, 一般比较弱密码在http://www.cmd5.com都是可以被破解的, 使用的是暴利破解的方式, md5加密是不可逆的, 可以给一个文件, 一个字符串加密, 不会产生一样的密文.

程序开发中的加密方式

对于安全性要求比较高的时候, 可以使用下面的加密方式:
程序开发中的加密方式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值