zoukankan      html  css  js  c++  java
  • (5) openssl speed(测试算法性能)和openssl rand(生成随机数)

    1.1 openssl speed

    测试加密算法的性能

    支持的算法有:

    openssl speed [md2] [mdc2] [md5] [hmac] [sha1] [rmd160] [idea-cbc] [rc2-cbc] [rc5-cbc] [bf-cbc] [des-cbc] [des-ede3] [rc4] [rsa512] [rsa1024] [rsa2048] [rsa4096] [dsa512] [dsa1024] [dsa2048] [idea] [rc2] [des] [rsa] [blowfish]

    不过为什么没有base64算法呢?

    测试速度好几秒一个指标,很慢。如果不指定参数将测试所有支持的算法,所以会花很久时间,我的虚拟机上花了十多分钟才测试完所有的算法性能。

    例如测试下dsa512、rsa512和rsa2048加密速度如何

    [root@docker121 ssl]# openssl speed dsa512 rsa512 rsa2048
    Doing 512 bit private rsa's for 10s: 107496 512 bit private RSA's in 9.99s
    Doing 512 bit public rsa's for 10s: 1425095 512 bit public RSA's in 10.00s
    Doing 2048 bit private rsa's for 10s: 4623 2048 bit private RSA's in 9.99s
    Doing 2048 bit public rsa's for 10s: 153395 2048 bit public RSA's in 9.99s
    Doing 512 bit sign dsa's for 10s: 102089 512 bit DSA signs in 10.00s
    Doing 512 bit verify dsa's for 10s: 121654 512 bit DSA verify in 9.99s
                      sign    verify    sign/s verify/s
    rsa  512 bits 0.000093s 0.000007s  10760.4 142509.5
    rsa 2048 bits 0.002161s 0.000065s    462.8  15354.9
                      sign    verify    sign/s verify/s
    dsa  512 bits 0.000098s 0.000082s  10208.9  12177.6

    在10秒时间内,rsa512的私钥处理107496单位,而rsa2048仅处理4623单位,慢了20多倍。

    再看签名性能,dsa算法只支持签名不支持加密,而rsa支持加密也支持签名。从上面的结果中可以看到rsa512的签名速度为每秒10760.4,而dsa512的速度为10208.9,速度相差不大。

    1.2 openssl rand

    生成伪随机数

    openssl rand [-out file] [-rand file(s)] [-base64] [-hex]   num

    选项说明:

    -out        :指定随机数输出文件,否则输出到标准输出。

    -rand file:指定随机数种子文件。种子文件中的字符越随机,openssl rand生成随机数的速度越快,随机度越高。

    -base64 :指定生成的随机数的编码格式为base64。

    -hex       :指定生成的随机数的编码格式为hex。

    num       :指定随机数的长度,必须指定

    示例:

    [root@docker121 ssl]# openssl rand -base64 30                  #使用base64编码
    PEvNEdjWvBuX4RgMdSu8HnTmfDTY0QV9Xasgt1y/


    [root@docker121 ssl]# openssl rand -hex 30                     #使用hex编码
    f0572781c04d8a9257948db7c99c93d4086058ce06bb70c41c63226f91d4


    [root@docker121 ssl]# openssl rand -hex -rand private.pem 30          #使用种子文件
    889 semi-random bytes loaded
    a62abd17b320f5608afec6f22785a7cafcbd5fc9dabc6f00651b07ec2f60

    [root@docker121 ssl]# openssl rand -rand private.pem 30              #不指定编码,输出的是二进制(乱码)
    889 semi-random bytes loaded
    pڵFӭL[root@docker121 ssl]# openssl rand 30                     #不使用编码
    ݺ>{'[root@docker121 ssl]#

     

  • 相关阅读:
    【分布式】缓存穿透、缓存雪崩,缓存击穿解决方案
    mongodb常用查询语法
    依据记录总数和每页大小取页数(转)
    SpringBoot普通类中如何获取其他bean例如Service、Dao(转)
    RabbitMQ三种Exchange模式(fanout,direct,topic)的性能比较(转)
    java中job运行时间
    如何查看某个端口被谁占用
    Push to origin/master was rejected (Git提交错误)(转)
    curl网站开发指南
    2012 不宜进入的三个技术点(中)
  • 原文地址:https://www.cnblogs.com/wyzhou/p/9738990.html
Copyright © 2011-2022 走看看