美文网首页
关于openssl

关于openssl

作者: AQ王浩 | 来源:发表于2015-03-28 14:26 被阅读610次

    openssl

    1、SSL 是什么

    SSL 是 Secure Sockets Layer(安全套接层协议)的缩写,可以在Internet 上提供秘密性传输。

    SSL能使用户/服务器应用之间的通信不被攻击者监听,并且始终对服务器进行认证,还可选择对用户进行认证。
    SSL 协议要求建立在可靠的传输层协议(TCP)之上。SSL协议的优势在于它是与应用层协议无关的,高层的应用层协议(例如:HTTP,FTP,TELNET)能透明地建立于SSL协议之上。

    SSL 协议在应用层协议通信之前就已经完成加密算法、通信密钥的协商及服务器认证工作。在此后应用层协议所传送的数据都会被加密,从而保证通信的私密性。

    2、openssl是什么

    OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其他的目的使用。

    3、openssl 的加密算法

    对称加密

    OpenSSL一共提供了8种对称加密算法,其中7种是分组加密算法,仅有的一种流加密算法是RC4。这7种分组加密算法分别是AESDESBlowfishCASTIDEARC2RC5,都支持电子密码本模式(ECB)、加密分组链接模式(CBC)、加密反馈模式(CFB)和输出反馈模式(OFB)四种常用的分组密码加密模式。其中,AES使用的加密反馈模式(CFB)和输出反馈模式(OFB)分组长度是128位,其它算法使用的则是64位。事实上,DES算法里面不仅仅是常用的DES算法,还支持三个密钥和两个密钥3DES算法。

    非对称加密

    OpenSSL一共实现了4种非对称加密算法,包括DH算法、RSA算法、DSA算法和椭圆曲线算法(EC)。DH算法一般用于密钥交换。RSA算法既可以用于密钥交换,也可以用于数字签名,当然,如果你能够忍受其缓慢的速度,那么也可以用于数据加密。DSA算法则一般只用于数字签名。

    4、一个简单的可逆的ruby字符串加密解密算法

    #encoding: utf-8
    class Des
      require 'openssl'
      require 'base64'
     
      ALG = 'DES-EDE3-CBC'
      KEY = 'uryeiyel'
      DES_KEY = 'uygbfs3w'
     
      class << self
        def encode(str)
          des = OpenSSL::Cipher::Cipher.new ALG
          des.pkcs5_keyivgen KEY, DES_KEY
          des.encrypt
          cipher = des.update str
          cipher << des.final
          Base64.urlsafe_encode64 cipher
        end
     
        def decode(str)
          str = Base64.urlsafe_decode64 str
          des = OpenSSL::Cipher::Cipher.new ALG
          des.pkcs5_keyivgen KEY, DES_KEY
          des.decrypt
          des.update(str) + des.final
        end
      end
    end
    
     secret_str =  Des.encode("tianmi")
     Des.decode(secret_str)
    

    5、Ruby 加密方式

    SHA

    MD5

    base64

    如何防范密码被破解

    酷壳中提到:你可以一个安全的口令和一个快速的加密算法,或是一个不怎么安全口令和一个性能不好的加密算法。

    参考

    在 OpenSSL 心脏攻击中 Rubyist 该怎么办
    OpenSSL Ruby API
    加密方式
    Ruby 加密类

    相关文章

      网友评论

          本文标题:关于openssl

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