项目里面常用的加密方式base64、AES、MD5、sha-1

本文介绍了项目中常见的四种加密方式:Base64、MD5、SHA-1以及AES。Base64主要用于数据的编码,方便在网络中传输;MD5和SHA-1是不可逆的摘要算法,常用于数据校验;AES是一种对称加密算法,适用于保密性需求较高的场景。文中给出了各加密方法的原理、特点以及在Objective-C中的实现示例。
摘要由CSDN通过智能技术生成
今天重新整理了一遍以前项目中经常用到过的几种加密的方式,发现以前其实对这几种加密的方式理解的不是特别的深刻首先从加密的本质是来看,是把一些不定长度的数据按照一定的编码规则输出为一种一定长度的数据串。这个是我理解的加密,其中不同的加密手段采用不同的编码规则。阅读之前先了解一些基本的概念:


1.简单的概念


明文:加密前的信息


密文:机密后的信息


算法:加密或解密的算法


密钥:算法使用的钥匙(读作miyao,正确应该是miyue,但是大家都读miyao)


2.简单的例子


将123456每位数字都加1后得到234567,


其中123456就是明文,234567就是密文,加密密钥就是1,加密算法是每位加




3.对称加密和非对称加密


以上为例,


123456-->234567的加密密钥就是1,加密算法是每位+


234567-->123456的解密密钥也是1,解密算法是每位-


其中加密算法(+)和解密算法(-)相对称,这种加密算法就称作对称加密,


同样,如果加密算法和解密算法不对称就称之为非对称加密。




4.算法举例


对称加密算法:DES算法,3DES算法,TDEA算法,Blowfish算法,RC5算法,IDEA算法,AES算法。


非对称加密算法:RSA、Elgamal、背包算法、Rabin、D-H、ECC。


经典的哈希算法:MD2、MD4、MD5 和 SHA-1(目的是将任意长输入通过算法变为固定长输出,且保证输入变化一点输出都不同,且不能反向解密)




下面我们说一下我们常用到的加密手段


1.base64,这个加密手段是一些项目里面常用到的,一般采用这种加密手段十分好破解,他的加密实际作用不在于保密,你看看经过BASE64编码后的字符串,全部都是由标准键盘上面的常规字符组成,这样编码后的字符串在网关之间传递不会产生UNICODE字符串不能识别或者丢失的现象。你再仔细研究下EMAIL就会发现其实EMAIL就是用base64编码过后再发送的。然后接收的时候再还原。
    还有一种情况下用BASE64编码也很好,比如一个图片文件,或者其他任何二进制文件。我可以把它编码成字符串。这样用XML或者数据库就能直接以文本的方式来存储这些文件了。
       下面就说一下他的具体使用了:
首先你要先添加几个文件GTMBase64,这个是第三方的库可以从网络资源中获取,直接调用里面的算法


//加密算法
+(NSData *)encodeData:(NSData *)data {
    return [self baseEncode:[data bytes]
                     length:[data length]
                    charset:kBase64EncodeChars
                     padded:YES];
}
//解密算法
+(NSData *)decodeData:(NSData *)data {
    return [self baseDecode:[data bytes]
                     length:[data length]
                    charset:kBase64DecodeChars
             requirePadding:YES];
}
从程序中我们可以看到无论是加密还是解密他处理的对象都是nsdata类型的
所以我们在加密解密之前要对数据进行二进制编码
实例说明:
//用户名
                  NSData*data_user=[userName_TF.text dataUsingEncoding:NSUTF8StringEncoding];
                  NSData*Data_U=[GTMBase64 encodeData:data_user];
                  NSString*username=[[NSString alloc]initWithData:Data_U encoding:NSUTF8StringEncoding];


2.下面说一下MD5加密的作用和用法


首先要知道MD5加密原理和性质,MD5首先他是一个安全的算列算法,他有两个特点。其一,输入两段明文也就是原始数据,不会得到相同的输出值。
其二,他
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值