美文网首页
对称加密与非对称加密

对称加密与非对称加密

作者: 小白奔哥 | 来源:发表于2021-07-05 10:16 被阅读0次

    一.对称加密

    常用的对称加密DES、AES,DES也有衍生的3DES等加密方式

    对称加密用到的加密模式有ECB、CBC、CFB、OFB,这里简单介绍一下前面两种加密模式ECB和CBC

    的实现原理。

    .    ECB

    01

    采用相同且唯一的密钥 各个加密块之间相对独立,并行进行

    .    CBC

    02

    前一块密文块需要加入到下一块明文块的的加密工作当中,以此循环,当第一个明文块0需要加密时,需要初始化向量IV,向量IV和前一个密文块加入到明文块的加密工作中,是为了有效破坏明文数据的模式,来确保一定的安全性。

    使用相同密钥,串行进行,

    两者对比:

    .  ECB优缺点

          简单、利于并行计算、误差不会被传染

          不能隐藏明文块,可能对铭文进行攻击

    .   CBC优缺点

        安全性更佳

        不利于并行计算、误差具有传递性、需要初始化向量IV

    我们可以对实际存在的文件利用终端命令指令来进行命令加密

    .   ECB

         对testECB.rtf文件加密生成testECB.bin加密文件

         openssl enc -des-ecb -K 616263 -nosalt -in testECB.rtf -out testECB.bin

        对刚刚生成的testECB.bin文件解密成testECB1.rtf文件

         openssl enc -des-ecb -K 616263 -nosalt -in testECB.bin -out testECB1.rtf -d

    .    CBC

        对testCBC.rtf文件加密生成testCBC.bin加密文件

         openssl enc -aes-128-cbc -iv 0102030405060708 -K 616263 -nosalt -in testCBC.rtf -out    testCBC.bin

        对刚刚生产的testCBC.bin文件解密成testCBC1.rtf文件

          openssl enc -aes-128-cbc -iv 0102030405060708 -K 616263 -nosalt -in testCBC.bin -out testCBC1.rtf -d

    到这里我们就讲完了对称加密的常用的两种加密模式,对称加密常用的DES和AES,在IOS代码的实现见文末demo。

    二.非对称加密

    拥有不通的密钥,公钥、私钥。常用到的RSA。

    .    工作原理

          A生成的公钥和私钥 ,A将公钥给B,B利用A给的公钥对文件进行加密,B再将加密后的文件给A,

          A利用自己的私钥把B给过来的文件进行解密。

          这种情况,很明显的是只有公钥在传输,攻击也只有攻击公钥

          RSA在IOS中的代码实现见Demo

    注意:RSA需要在本地生成公钥和私钥,命令:

    openssl genrsa -out private_key.pem 1024

    openssl req -new -key private_key.pem -out rsaCertReq.csr

    openssl x509 -req -days 3650 -in rsaCertReq.csr -signkey private_key.pem -out rsaCert.crt

    //为ios创建 public_key.der

    openssl x509 -outform der -in rsaCert.crt -out public_key.der

    // 为ios创建 private_key.p12,这一步,请记住你输入的密码,IOS代码里会用到

    openssl pkcs12 -export -out private_key.p12 -inkey private_key.pem -in rsaCert.crt

    // 为JAVA创建 rsa_public_key.pem

    openssl rsa -in private_key.pem -out rsa_public_key.pem -pubout

    // 为JAVA创建 pkcs8_private_key.pem

    openssl pkcs8 -topk8 -in private_key.pem -out pkcs8_private_key.pem -nocrypt

    简书无法上传DEMO附件,需要的可以评论联系我

    相关文章

      网友评论

          本文标题:对称加密与非对称加密

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