标签:conf hash 解密 \n 文件夹 插入 key -128 文件的
在命令行中输入
./config make sudo make install
等待安装完即可。其中需要注意的一行是库文件被复制到哪个文件夹里面了
#include <stdio.h>
#include <openssl/evp.h>
int main(){
OpenSSL_add_all_algorithms();
return 0;
}
注意刚才记下来的库所在路径
> gcc -o test_openssl test_openssl.c -L/usr/local/lib(路径) -lcrypto -ldl -lpthread
> ./test_openssl
> echo $?
openssl enc -ciphername [-in filename] [-out filename] [-pass arg] [-e] [-d] [-a/-base64]
[-A] [-k password] [-kfile filename] [-K key] [-iv IV] [-S salt] [-salt] [-nosalt] [-z] [-md]
[-p] [-P] [-bufsize number] [-nopad] [-debug] [-none] [-engine id]
-in filename:指定要加密的文件存放路径
-out filename:指定加密后的文件存放路径
-salt:自动插入一个随机数作为文件内容加密,默认选项
-e:可以指明一种加密算法,若不指的话将使用默认加密算法
-d:解密,解密时也可以指定算法,若不指定则使用默认算法,但一定要与加密时的算法一致
-a/-base64:使用-base64位编码格式
AES:
openssl enc -aes-128-cbc -in plain.txt -out out.txt -pass pass:123456 //密码123456
RSA:
RSA 的用法如下:
openssl rsa [-inform PEM|NET|DER] [-outform PEM|NET|DER] [-in filename] [-passin arg] [-out filename] [-passout arg]
[-sgckey] [-des] [-des3] [-idea] [-text] [-noout] [-modulus] [-check] [-pubin] [-pubout] [-engine id]
常用选项:
-in filename:指明私钥文件
-out filename:指明将提取出的公钥保存至指定文件中
-pubout:根据私钥提取出公钥
MD5:
openssl passwd -1 -in test.txt -salt 12345678
生成密码需要使用的标准命令为 passwd ,用法如下:
openssl passwd [-crypt] [-1] [-apr1] [-salt string] [-in file] [-stdin] [-noverify] [-quiet] [-table] {password}
常用选项有:
-1:使用md5加密算法
-salt string:加入随机数,最多8位随机数
-in file:对输入的文件内容进行加密
-stdion:对标准输入的内容进行加密
#include <openssl/ssl.h>
#include <openssl/err.h>
SSL_library_init();
OpenSSL_add_all_algorithms();
SSL_load_error_strings();
ctx = SSL_CTX_new(SSLv23_server_method());
if (ctx == NULL) {
ERR_print_errors_fp(stdout);
exit(1);}
if (SSL_CTX_use_certificate_file(ctx, argv[3], SSL_FILETYPE_PEM) <= 0) {
ERR_print_errors_fp(stdout);
exit(1);
}
if (SSL_CTX_use_PrivateKey_file(ctx, argv[4], SSL_FILETYPE_PEM) <= 0){
ERR_print_errors_fp(stdout);
exit(1);
}
if (!SSL_CTX_check_private_key(ctx)) {
ERR_print_errors_fp(stdout);
exit(1);
}
ssl = SSL_new(ctx);
SSL_set_fd(ssl, new_server_socket_fd);
if (SSL_accept(ssl) == -1) {
perror("accept");
close(new_fd);
break;
}
int len = SSL_read(ssl, buffer, MAXBUF);
if (len > 0)
printf("接收消息成功:'%s',共%d个字节的数据\n", buffer, len);
else
printf("消息接收失败!错误代码是%d,错误信息是'%s'\n",errno, strerror(errno));
SSL_shutdown(ssl);
SSL_free(ssl);
SSL_CTX_free(ctx);
在第一步下载完老师给的OpenSSL链接中的压缩包以后,解压缩以后make不通过,发现有.c文件出现错误。
和其他同学交流以后我得到了解决方案,可能是老师指定下载的版本与当前ubuntu的版本不适应而造成的错误。之后我选择了下载OpenSSL官网上的Master压缩包,下载完毕解压缩以后再make就可以通过了。
本次实验是信息安全系统设计技术的最后一次实验,十分不舍,感谢娄老师一个学期以来的培养。
2018-2019-1 20165202 实验五 通讯协议设计
标签:conf hash 解密 \n 文件夹 插入 key -128 文件的
原文地址:https://www.cnblogs.com/jhs888/p/10129055.html