您好,欢迎来到微智科技网。
搜索
您的当前位置:首页openssl实验

openssl实验

来源:微智科技网


会用opensll.exe应用程序指令

参阅两个文档《openssl编程第32章》和《openssl应用程序指令》

rand 生成随机数

生成随机数。

用法:

openssl rand [-out file] [-rand 选项:

-out file

结果输出到file中。

-engine e

采用engine来生成随机数。 -rand file

指定随机数种子文件。

file(s)] [-base] num

-base

输出结果为BASE编码数据。

num

随机数长度。

示例:

(1) openssl rand –base 100

(2) openssl rand –base –out myr.dat 100

用WinHex或UltraEdit打开myr.dat

speed

speed命令用于测试库的性能。

用法:

openssl speed [-engine id] [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]

选项:

-engine id

设置硬件引擎id。

-elapsed

测量采用实时时间,不是所用CPU时间,两者时间差异较大。

-mr

生成机器可读显示。

-multi n

并行允许n个测试。

示例:openssl speed md5

Prime

检查一个数是否为素数。示例如下:

openssl prime 79

openssl prime -hex 4F

enc

enc为对称加解密工具,还可以进行base编码转换。

用法:

openssl enc -ciphername [-in filename] [-out filename] [-pass arg] [-e ] [-d ] [-a ] [-A] [-k password ] [-kfile filename] [-K key] [-iv IV] [-p] [-P] [-bufsize number] [-nopad] [-debug]

选项:

-ciphername

对称算法名字,此命令有两种适用方式:-ciphername方式或者省略enc直接用ciphername。比如,用des3加密文件a.txt:

openssl enc -des3 -e -in a.txt -out b.txt

openssl des3 -e -in a.txt -out b.txt

-in filename

输入文件,默认为标准输入。

-out filename

输出文件,默认为标准输出。

-pass arg

输入文件如果有密码保护,指定密码来源。

-e

进行加密操作,默认操作。

-d

进行解密操作。

-a

当进行加解密时,它只对数据进行运算,有时需要进行base转换。设置此选项后,加密结果进行base编码;解密前先进行base解码。

-A

默认情况下,base编码结果在文件中是多行的。如果要将生成的结果在文件中只有一行,需设置此选项;解密时,必须采用同样的设置,否则读取数据时会出错。

-k password

指定加密口令,不设置此项时,程序会提示用户输入口令。

-kfile filename

指定口令存放的文件。

-K key

输入口令是16进制的。

-iv IV

初始化向量,为16进制。

比如:openss des-cbc -in a.txt -out b.txt -a -A -K 1111 -iv 2222

-p

打印出使用的salt、口令以及初始化向量IV。

-P

打印使用的salt、口令以及IV,不做加密和解密操作。

-bufsize number

设置I/O操作的缓冲区大小,因为一个文件可能很大,每次读取的数据是有限的。

-debug

打印调试信息。

举例:

把某二进制文件转换成base编码方式:

openssl base -in file.bin -out file.b

把某base编码文件转换成二进制文件。

openssl base -d -in file.b -out file.bin

把某文件用DES-CBC方式加密。加密过程中会提示你输入保护密码。

openssl des3 -salt -in file.txt -out file.des3

解密该文件, 密码通过-k来输入

openssl des3 -d -salt -in file.des3 -out file.txt -k mypassword

加密某文件,并且把加密结果进行base编码。用bf+cbc算法加密

openssl bf -a -salt -in file.txt -out file.bf

先用base解码某文件,再解密

openssl bf -d -salt -a -in file.bf -out file.txt

用WinHex或UltraEdit打开加密文件

学习BASE编码解码原理

参阅文档《openssl编程第12章》

编程示例参看second,学习了下面的EVP后看例子程序

学习EVP编程

参阅两个文档《openssl编程第21章》和《openssl SDK》

学习EVP的对称加解密函数和BASE加解密函数

例子First和Second

注意添加头文件路径和lib路径

将dll拷贝到你的工程下

(或者利用安装向导安装dll到SYSTEM32下)

VS2005

Tools--options—projects and solutions—VC++ Directories—include files添加头文件evp.h

Project—property—configuration—linker—input—additional dependencies 添加libeay32.lib和ssleay32.lib

VC6.0

Tools--options— Directories—include files添加头文件evp.h

Project—configuration—linker—object/lib module添加libeay32.lib和ssleay32.lib

任务:在EVP.h中找到支持的对称加密算法和摘要算法,以及各个对称算法的加密模式,并修改程序中的TYPE来实现不同加密算法不同模式的加密。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 7swz.com 版权所有 赣ICP备2024042798号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务