zoukankan      html  css  js  c++  java
  • 几种加密方式

    1 Base64加密方式(可逆)

    Base64中的可打印字符包括字母A-Z/a-z/数组0-9/ 加号’+’斜杠’/’ 这样共有62个字符

    Base64 ios7之后加入系统库

    2 MD5加密

    Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护

    是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD5实现。

    根据输出值,不能得到原始的明文,即其过程不可逆

    MD5算法具有以下特点:

    1、压缩性:任意长度的数据,算出的MD5值长度都是固定的。

    2、容易计算:从原数据计算出MD5值很容易。

    3、抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。

    4、强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。

    MD5的作用是让大容量信息在用数字签名软件签署私人密钥前被”压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的十六进制数字串)。除了MD5以外,其中比较有名的还有sha-1、RIPEMD以及Haval等。

    MD5加盐

    3 钥匙串加密方式

    iCloud钥匙串,苹果给我们提供的密码保存的解决方案,iOS7之后有的

    存沙盒:

    1、如果手机越狱,密码容易被窃取。

    2、当软件更新时,沙盒里的内容是不被删除的。但是,如果将软件卸载后重装,沙盒里的数据就没有了。

    3、每个APP的沙盒是相对独立的,密码无法共用。

    存钥匙串里:

    1、苹果提供的安全方案,rsa加密,相对安全。

    2、无论软件更新或删除,密码都存在,都可以自动登录。

    3、同一公司的APP密码是可以共用的。

    4 对称加密算法

    优点:算法公开、计算量小、加密速度快、加密效率高、可逆

    缺点:双方使用相同钥匙,安全性得不到保证

    现状:对称加密的速度比公钥加密快很多,在很多场合都需要对称加密,

    算法: 在对称加密算法中常用的算法有:DES3DES、TDEA、Blowfish、RC2、RC4、RC5IDEA、SKIPJACK、AES等。不同算法的实现机制不同,可参考对应算法的详细资料

    相较于DES和3DES算法而言,AES算法有着更高的速度和资源使用效率,安全级别也较之更高了,被称为下一代加密标准

    nECB :电子代码本,就是说每个块都是独立加密的

    nCBC :密码块链,使用一个密钥和一个初始化向量 (IV)对数据执行加密转换

    ECB和CBC区别:CBC更加复杂更加安全,里面加入了8位的向量(8个0的话结果等于ECB)。在明文里面改一个字母,ECB密文对应的那一行会改变,CBC密文从那一行往后都会改变。

    5 RSA加密(非对称加密算法)(Secruty.framework系统库)

    非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)

    非对称加密中使用的主要算法有:RSAElgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)等。

    公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密

    特点:

    非对称密码体制的特点:算法强度复杂、安全性依赖于算法与密钥但是由于其算法复杂,而使得加密解密速度没有对称加密解密的速度快

    对称密码体制中只有一种密钥,并且是非公开的,如果要解密就得让对方知道密钥。所以保证其安全性就是保证密钥的安全,而非对称密钥体制有两种密钥,其中一个是公开的,这样就可以不需要像对称密码那样传输对方的密钥了

    但是RSA加密算法效率较差,对大型数据加密时间很长,一般用于小数据。

  • 相关阅读:
    小波变换的引入,通俗易懂
    Leetcode 437. Path Sum III
    Leetcode 113. Path Sum II
    Leetcode 112 Path Sum
    Leetcode 520 Detect Capital
    Leetcode 443 String Compression
    Leetcode 38 Count and Say
    python中的生成器(generator)总结
    python的random模块及加权随机算法的python实现
    leetcode 24. Swap Nodes in Pairs(链表)
  • 原文地址:https://www.cnblogs.com/ritian/p/5422777.html
Copyright © 2011-2022 走看看