美文网首页
密码学初见

密码学初见

作者: TAsama | 来源:发表于2018-12-10 10:19 被阅读0次

最早的密码学:

密码本加密

持续到了上世纪的70年代

RSA加密

只能通过因式分解的方式来破解,破解难度巨大
rsa加密之后衍生出了很多加密算法,如:

  • 哈希(散列)函数
    1. MD5
    2. SHA1
    3. SHA256/512
  • 对称加密算法
    1. DES
    2. 3DES
    3. AES(高级密码标准,ios内部使用)

散列函数:

特点:
  • 算法公开
  • 对相同的数据加密,得到的结果是一样的
  • 对不同的数据加密,得到的结果是定长的.32位字符(a-z,0-9)
  • 信息摘要(信息“指纹”),是用来做识别的
  • 不能反算
用途:
  • 密码
  • 搜索引擎的算法
  • 版权
破解:
  • 目前破解的散列只有MD5, SHA1 也在破解的边缘
  • 散列碰撞,不同的数据,使用MD5之后能够得到相同的散列结果!
    由于32位字符能表达的数据个数是有限的,而被散列的数据个数可以是无限的

MD5的实现

- (NSString *)md5String {
    const char *str = self.UTF8String;
    unsigned char buffer[CC_MD5_DIGEST_LENGTH];
    
    CC_MD5(str, (CC_LONG)strlen(str), buffer);
    NSMutableString * ret = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH];
    for (int i = 0; i < CC_MD5_DIGEST_LENGTH; i++) {
        /**
        X 表示以十六进制形式输入/输出
        02 表示不足两位,前面补0输出;出过两位不影响
        printf("%02X", 0x123); 打印出:123
        printf("%02X", 0x1); 打印出:01
        */
        [ret appendFormat:@"%02X",buffer[i]];
    }
    return ret;
}

由于使用MD5已经不是很安全了,为了保证MD5的基本安全:

  1. 加盐(但是“盐”是固定的,如果“盐”泄露了就不安全了,而“盐”无法更改)
  2. HMAC,目前一两年在国内开始增多
    给定一个秘钥,对明文进行加密,并且做了“两次散列”
    服务器将保存用户的账号以及账号对应的秘钥
- (NSString *)hmac_md5String:(NSString *)key {
    return [self.md5String stringByAppendingString:key].md5String;
}
hmac 登录思路:
  1. 用户登录
  2. 本地查找秘钥,若找不到,则像服务器发送账号,获取秘钥
设备锁思路:

当新设备登录时,在本地查找不到对应账号的秘钥,就会想服务器发送秘钥请求,此时服务器就向原先的设备发解锁请求,如果请求通过了,则向新设备发送秘钥,新设备保存至本地。

hmac+时间

客户端: (pwd.hmac+当前时间).md5
服务端:(加密后的密码+当前时间).md5 || (加密后的密码+当前时间前一分钟).md5

本地保存
  1. 记住密码,加密保存,反向解密。
    钥匙串访问:
    钥匙串加密使用AES加密,可以将保存的密码以明文的方式反算给你
    pod 'SAMKeychain'
    需要先开启钥匙串访问

相关文章

  • 密码学初见

    最早的密码学: 密码本加密 持续到了上世纪的70年代 RSA加密 只能通过因式分解的方式来破解,破解难度巨大rsa...

  • 前后端数据传输安全——加密浅析

    加密 本文内容: 密码学起源 古典密码学 现代密码学 对称加密 非对称加密 数字签名 哈希 密码学起源: 在战争中...

  • 1.什么是密码学

    重点:密码学的主要功能及其含义现代密码学与信息安全的关系现代密码学的主要研究内容 1. 密码学定义 密码学是一个...

  • 关于区块链密码学

    什么是密码学 以下是密码学在维基百科中的解释: 密码学(英语:Cryptography)可分为古典密码学和现代密码...

  • 密码学基础知识

    密码学 推荐书籍 图解密码技术 结城浩 著 周自恒 译 密码学概览 密码学概览图密码学概览 消息的特性 机密...

  • iOS逆向攻防之密码学基础及RSA数学原理、Base64编码

    直接上密码学入门级知识部分,今天的内容如下: 一、密码学概述与发展历史 1、密码学的概述 2、密码学的主要发展历史...

  • IOS 逆向开发(一)密码学 RSA

    IOS 逆向开发(一)密码学 RSA 1. 密码学发展简介 密码学是指研究信息加密,破解密码的技术科学。密码学的起...

  • RSA加密

    一、密码学 密码学是指研究信息加密,破解密码的技术科学。密码学的起源可追溯到2000年前。而当今的密码学是以数学为...

  • 密码那些事儿|(二十八)战争对密码学的作用

    说完密码学对战争的作用,我们再来看看战争对密码学的影响。 在密码学的发展历史上,有这么一个规律 ——密码学总是在信...

  • 密码学-RSA

    密码学 密码学是指研究信息加密,破解密码的技术科学。密码学的起源可追溯到2000年前。而当今的密码学是以数学为基础...

网友评论

      本文标题:密码学初见

      本文链接:https://www.haomeiwen.com/subject/zqjkhqtx.html