数据加密

数据安全

  • 数据安全的原则
    1)在网络上"不允许"传输用户隐私数据的"明文"
    2)在本地"不允许"保存用户隐私数据的"明文"
  • 请求的方法
  1. 一定要使用POST请求提交用户的隐私数据
    这个请求的方式,可以将于用户相关的信息全部放在一个请求体内,不会暴露在请求的URL中
  2. GET请求的所有参数都直接暴露在了URL中
    这个请求的方式,会将用户的私人信息暴露在请求的URL内,不利于私人信息的保密
  3. 请求的URL一般会记录在服务器的访问日志中
  4. 服务器的访问日志是黑客攻击的重点对象之一
  • 用户的隐私数据都包含哪些
    用户的隐私数据,一般都包含用户的账号/密码,银行的账号等等
  • 数据拦截的方式
    1.数据的拦截有多种多样的方式,作为编程人员,平时最常做的接口验证,需要拦截数据,查看请求到的数据是否正常,这里常用的到软件是Charles
    2.平时仅仅使用POST请求提交用户的隐私数据,还是不能完全的解决安全问题,因为可以使用软件(比如Charles),通过设置代理服务器,可以拦截并查看手机客户端的请求数据,因此,在提交用户的隐私数据时,一定不要明文(包括POST请求方式中的请求体内管用用户隐私的内容)提交,必须要加密处理后再提交
  • 信息安全所面临的威胁
  1. 机密性(面临着被窃听,秘密泄露的威胁)
  2. 完整性(面临着被篡改,信息被修改的威胁)
  3. 认证(伪装,指的是伪装成通信双方,以成功获取对象的认证)
  4. 不可否认性(否认,是指事后不承认是自己发送的)


  • 常用的加密算法
    最常用的加密算法用如下几种:
    MD5 \ SHA \ DES \ 3DES \ RC2和RC4 \RSA \ IDEA \ DSA \ AES
  • 加密算法的选择
    一般公司都会有一套自己的加密方案,按照公司接口文档的规定去加密

常见的加密算法

  • Base64编码

    • 简单说明

      • HTTP将Base64编码用于基本的认证和摘要认证
      • 其可以方便的将用户的任何输入转换成只包含特定字符的安全格式,服务于网络通信过程
      • Base64可以成为密码学的基石,非常重要。
    • 特点:

      1. 可以将任意的二进制数据进行Base64编码
      2. 所有的数据都能被编码为,只用65个字符就能表示的文本文件。
      3. 编码后的65个字符包括 : A~Z a~z 0~9 + / =
      4. 对文件进行base64编码后文件数据的变化:编码后的数据 约等于 编码前数据的4/3,会比原始的数据大1/3(33%)左右。
      5. 能够进行逆运算
      6. 不够安全,但却被很多加密算法作为编码格式
  • 通过"终端命令行"实现Base64编码和解码

    编码:base64 123.png -o 123.txt
    解码:base64 123.txt -o test.png -D
  • Base64编码原理
    1)将所有字符转化为ASCII码;
    2)将ASCII码转化为8位二进制;
    3)将二进制3个归成一组(不足3个在后边补0)共24位,再拆分成4组,每组6位;
    4)统一在6位二进制前补两个0凑足8位;
    5)将补0后的二进制转为十进制;
    6)从Base64编码表获取十进制对应的Base64编码;
  • 处理过程
    a.转换的时候,将三个byte的数据,先后放入一个24bit的缓冲区中,先来的byte占高位。
    b.数据不足3byte的话,于缓冲区中剩下的bit用0补足。然后,每次取出6个bit,按照其值选择查表选择对应的字符作为编码后的输出。
    c.不断进行,直到全部输入数据转换完成。
    d.如果最后剩下两个输入数据,在编码结果后加1个“=”;
    e.如果最后剩下一个输入数据,编码结果后加2个“=”;
    f.如果没有剩下任何数据,就什么都不要加,这样才可以保证资料还原的正确性。
  • 编码&解码方式
    编码
    • 编码方式一 : 通过将给定的字符串转换成二进制数据后进行Base64编码,输出的编码结果是一个二进制数据
      方法 : -(NSData*)base64EncodedDataWithOptions(NSDataBase64EncodingOptions);
      返回的是NSData
-(NSString *)base64Encodeing1:(NSString *)string
{
    //将字符串转换成二进制
    NSData * data = [string dataUsingEncoding:NSUTF8StringEncoding];
    //对二进制数据进行base64编码
    NSData * codeData = [data base64EncodedDataWithOptions:0];
    //将编码后的二进制数据转换成字符串后输出
    return [[NSString alloc] initWithData:codeDataencoding:NSUTF8StringEncoding];
}
  • 编码方式二 : 将给定的字符串转换成二进制后,进行Base64编码,输出的编码结果是字符串
    - (NSString *)base64EncodedStringWithOptions(NSDataBase64EncodingOptions);
    返回的是NSString
-(NSString *)base64Encodeing2:(NSString *)string
{
    //将字符串转换成二进制
    NSData * data = [string dataUsingEncoding:NSUTF8StringEncoding];
    //将二进制数据通过base64编译成字符串
    return [data base64EncodedStringWithOptions:0];
}

解码

  • 解码方式一 : 通过将经过Base64编码后的字符串转换成二进制数据后,进行解码
    -(nullable instancetype)initWithBase64EncodedData:(NSData *)base64Data options:(NSDataBase64DecodingOptions);
    上边的方法是NSData的方法,通过一个二进制数据,返回的实例对象是NSData对象
-(NSString *)base64Decodeing1:(NSString *)string
{
    //将字符串转换成二进制
    NSData * data = [string dataUsingEncoding:NSUTF8StringEncoding];
    //将二进制数据通过base64进行解码
    NSData * deCode = [[NSData alloc] initWithBase64EncodedData:data options:0];
    //将解码 后的二进制数据转换成字符串
    return [[NSString alloc] initWithData:deCode encoding:NSUTF8StringEncoding];
}
  • 解码方式二 : 直接将经过Base64编码后的字符串进行解码
    -(nullable instancetype)initWithBase64EncodedString:(NSString *)base64String options:(NSDataBase64DecodingOptions);
    上边的方法是NSData的方法,通过一个字符串,返回一个实例对象是NSData的对象
-(NSString *)base64Decodeing2:(NSString *)string
{
    //解码字符串,并转换成二进制数据
    NSData * deCodeData = [[NSData alloc] initWithBase64EncodedString:string options:0];
    //将解码后的二进制数据,转换成字符串,并返回
    return [[NSString alloc] initWithData:deCodeData encoding:NSUTF8StringEncoding];
}

常见的其他加密算法

  • 常见的加密算法
    1. 消息摘要(单向散列函数)包括:MD5 \ SHA1 \ SHA256 \ SHA512等
    2. 消息认证 包括 : HMAC-MD5 \ HMAC-SHA1
    3. 对称加密 包括 : DES \ 3DES \ AES(高级加密标准)
    4. 非对称加密 包括 : RSA
    5. 数字签名
    6. 证书等
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,589评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,615评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,933评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,976评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,999评论 6 393
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,775评论 1 307
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,474评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,359评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,854评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,007评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,146评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,826评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,484评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,029评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,153评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,420评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,107评论 2 356

推荐阅读更多精彩内容

  • 1.数据安全 01数据安全的原则1)在网络上"不允许"传输用户隐私数据的"明文"2.)在本地"不允许"保存用户隐私...
    陈贺阅读 2,163评论 0 2
  • 1.数据安全 01数据安全的原则1)在网络上"不允许"传输用户隐私数据的"明文"2.)在本地"不允许"保存用户隐私...
    小枫123阅读 467评论 0 1
  • 前言 iOS系统由于其封闭性其安全系数要比安卓高不少,但是依然有插件可以捕捉到iOS端敏感数据,特别是以plist...
    laitys阅读 1,886评论 0 9
  • 数据加密/数据安全: l 安全的原则 Ø 1)在网络上不允许传输用户隐私数据的明文 Ø 2)在本地不允许保存...
    成功没有捷径_LBQ阅读 373评论 0 0
  • 条纹元素经典搭配,每个姑娘的衣橱里都应该有不同类型的条纹款式。 我个人很喜欢穿条纹,室友总说我养了...
    遥远的她她阅读 272评论 0 0