导航:首页 > 文档加密 > openssl支持加密

openssl支持加密

发布时间:2022-01-29 08:57:32

A. openssl可以加密多大文件

如果你需要对文件进行加密,可以试一下
超级加密3000
这款软件,
使用文件夹保护加密数据的话,大小是没限制的哦

B. openssl 加密算法区别

openssl加密算法区别是:RSA/DSA ,不同的是RSA可以用于加/解密,也可以用于签名验签,DSA则只能用于签名。至于SHA则是一种和md5相同的算法。

它不是用于加密解密或者签名的,它被称为摘要算法。就是通过一种算法,依据数据内容生成一种固定长度的摘要,这串摘要值与原数据存在对应关系,就是原数据会生成这个摘要,但是,这个摘要是不能还原成原数据的。

正常情况下是这样的,这个算法起的作用就是,如果你把原数据修改一点点,那么生成的摘要都会不同,传输过程中把原数据给你再给你一个摘要,你把得到的原数据同样做一次摘要算法,与给你的摘要相比较就可以知道这个数据有没有在传输过程中被修改了。

openssl加密算法的实际运用:

实际应用过程中,因为需要加密的数据可能会很大,进行加密费时费力,所以一般都会把原数据先进行摘要,然后对这个摘要值进行加密,将原数据的明文和加密后的。

摘要值一起传给你。这样你解开加密后的摘要值,再和你得到的数据进行的摘要值对应一下就可以知道数据有没有被修改了。

而且,因为私钥只有你有,只有你能解密摘要值,所以别人就算把原数据做了修改,然后生成一个假的摘要给你也是不行的,你这边用密钥也根本解不开。

C. openssl rsa 可以用私钥加密 公钥解密吗

可以,私钥加密公钥解密是 数字签名的工作方式

D. openssl 默认使用什么加密

使用VS2005下的Visual Studio 2005 Command Prompt进入控制台模式(这个模式会自动设置各种环境变量) 、解压缩openssl的包,进入openssl的目录 、perl configure VC-WIN32 尽量在这个目录下执行该命令,否则找不到Configure文件,或者指定完整的Configure文件路径。 、ms\do_ms 在解压目录下执行ms\do_ms命令 、nmake -f ms\ntdll.mak编译后在openssl解压目录下执行,完成编译后。输出的文件在out32dll里面,包括应用程序的可执行文件、lib文件和dll文件 注意:在运行第五步时,cl编译器会抱怨说.\crypto\des\enc_read.c文件的read是The POSIX name for this item is deprecated(不被推荐的),建议使用_read。呵呵,我可不想将OpenSSL中的所有的read函数修改为_read。再看cl的错误代码 error C2220,于是上MSDN上查找: warning treated as error - no object file generated /WX tells the compiler to treat all warnings as errors. Since an error occurred, no object or executable file was generated. 是由于设置了/WX选项,将所有的警告都作为错误对待,所以。。。 于是打开OpenSSL目录下的MS目录下的ntdll.mak文件,将CFLAG的/WX选项去掉,存盘。

E. 如何用openSSL协议加密文件

openSSL这个很复杂!一定要用它吗?.net(.net 2.0以上)自带有RSA算法(非对称加密)的签名 加密功能!具体在System.Security.Cryptography命令空间下的System.Security.Cryptography.RSACryptoServiceProvider

F. 如何利用OpenSSL库进行RSA加密和解密

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<openssl/rsa.h>
#include<openssl/engine.h>

intmain(intargc,char*argv[])
{
printf("openssl_testbegin ");
RSA*rsa=NULL;
charoriginstr[]="hello ";//这是我们需要加密的原始数据
//allocateRSAstructure,首先需要申请一个RSA结构题用于存放生成的公私钥,这里rsa就是这个结构体的指针
rsa=RSA_new();
if(rsa==NULL)
{
printf("RSA_newfailed ");
return-1;
}

//generateRSAkeys
BIGNUM*exponent;
exponent=BN_new();//生成RSA公私钥之前需要选择一个奇数(oddnumber)来用于生成公私钥
if(exponent==NULL)
{
printf("BN_newfailed ");
gotoFAIL1;
}
if(0==BN_set_word(exponent,65537))//这里选择奇数65537
{
printf("BN_set_wordfailed ");
gotoFAIL1;
}


//这里molus的长度选择4096,小于1024的molus长度都是不安全的,容易被破解
if(0==RSA_generate_key_ex(rsa,4096,exponent,NULL))
{
printf("RSA_generate_key_exfailed ");
gotoFAIL;
}
char*cipherstr=NULL;
//分配一段空间用于存储加密后的数据,这个空间的大小由RSA_size函数根据rsa算出
cipherstr=malloc(RSA_size(rsa));
if(cipherstr==NULL)
{
printf("malloccipherstrbuffailed ");
gotoFAIL1;
}
//下面是实际的加密过程,最后一个参数paddingtype,有以下几种。
/*
RSA_PKCS1_PADDINGPKCS#1v1.5padding..
RSA_PKCS1_OAEP_PADDING
EME-OAEPasdefinedinPKCS#1v2.0withSHA-1,..
RSA_SSLV23_PADDING
PKCS#1v1.5paddingwithanSSL-.
RSA_NO_PADDING
RawRSAencryption.ntheapplicationcode..
*/
//这里首先用公钥进行加密,选择了RSA_PKCS1_PADDING

if(RSA_size(rsa)!=RSA_public_encrypt(strlen(originstr)+1,originstr,cipherstr,rsa,RSA_PKCS1_PADDING))
{
printf("encryptionfailure ");
gotoFAIL2;
}
printf("theoriginalstringis%s ",originstr);
printf("theencryptedstringis%s ",cipherstr);


//Now,let'
//下面来用私钥解密,首先需要一个buffer用于存储解密后的数据,这个buffer的长度要足够(小于RSA_size(rsa))
//这里分配一个长度为250的字符数组,应该是够用的。
chardecrypted_str[250];
intdecrypted_len;
if(-1=(decrypted_len=RSA_private_decrypt(256,cipherstr,decrypted_str,rsa,RSA_PKCS1_PADDING)))
{
printf("decryptionfailure ");
gotoFAIL2;
}
printf("decryptedstringlengthis%d,decryped_stris%s ",decrypted_len,decrypted_str);
FAIL2:
free(cipherstr);
FAIL1:
BN_free(exponent);
FAIL:
RSA_free(rsa);
return0;
}

以上是源代码,下面使用下面的编译命令在源码所在路径下生成可执行文件
gcc *.c -o openssl_test -lcrypto -ldl -L/usr/local/ssl/lib -I/usr/local/ssl/include
其中,-lcrypto和-ldl是必须的,前者是OpenSSL中的加密算法库,后者是用于成功加载动态库。

G. 如何解密以前加密通过OpenSSL加密的字符串

#include<stdio.h>#include<stdlib.h>#include<string.h>#include<openssl/rsa.h>#include<openssl/engine.h> int main(int argc, char* argv[]){ printf("openssl_test begin\n"); RSA* rsa=NULL; char originstr[]="hello\n"; //这是我们需要加密的原始数据 //allocate RSA structure,首先需要申请一个RSA结构题用于存放生成的公私钥,这里rsa就是这个结构体的指针 rsa = RSA_new(); if(rsa==NULL) { printf("RSA_new failed\n"); return -1; } //generate RSA keys BIGNUM* exponent; exponent = BN_new(); //生成RSA公私钥之前需要选择一个奇数(odd number)来用于生成公私钥 if(exponent ==NULL) { printf("BN_new failed\n"); goto FAIL1; } if(0==BN_set_word(exponent,65537)) //这里选择奇数65537 { printf("BN_set_word failed\n"); goto FAIL1; } //这里molus的长度选择4096,小于1024的molus长度都是不安全的,容易被破解 if(0==RSA_generate_key_ex(rsa,4096,exponent,NULL)) { printf("RSA_generate_key_ex failed\n"); goto FAIL; } char* cipherstr = NULL; //分配一段空间用于存储加密后的数据,这个空间的大小由RSA_size函数根据rsa算出 cipherstr = malloc(RSA_size(rsa)); if(cipherstr==NULL) { printf("malloc cipherstr buf failed\n"); goto FAIL1; } //下面是实际的加密过程,最后一个参数padding type,有以下几种。 /*RSA_PKCS1_PADDINGPKCS #1 v1.5 padding. This currently is the most widely used mode.RSA_PKCS1_OAEP_PADDINGEME-OAEP as defined in PKCS #1 v2.0 with SHA-1, MGF1 and an empty encoding parameter. This mode is recommended for all new applications.RSA_SSLV23_PADDINGPKCS #1 v1.5 padding with an SSL-specific modification that denotes that the server is SSL3 capable.RSA_NO_PADDINGRaw RSA encryption. This mode should only be used to implement cryptographically sound padding modes in the application code. Encrypting user data directly with RSA is insecure.*/ //这里首先用公钥进行加密,选择了RSA_PKCS1_PADDING if(RSA_size(rsa)!=RSA_public_encrypt(strlen(originstr)+1,originstr,cipherstr,rsa,RSA_PKCS1_PADDING)) { printf("encryption failure\n"); goto FAIL2; } printf("the original string is %s\n",originstr); printf("the encrypted string is %s\n",cipherstr); //Now, let's decrypt the string with private key //下面来用私钥解密,首先需要一个buffer用于存储解密后的数据,这个buffer的长度要足够(小于RSA_size(rsa)) //这里分配一个长度为250的字符数组,应该是够用的。 char decrypted_str[250]; int decrypted_len; if(-1=(decrypted_len=RSA_private_decrypt(256,cipherstr,decrypted_str,rsa,RSA_PKCS1_PADDING))) { printf("decryption failure\n"); goto FAIL2; } printf("decrypted string length is %d,decryped_str is %s\n",decrypted_len,decrypted_str);FAIL2: free(cipherstr);FAIL1: BN_free(exponent);FAIL: RSA_free(rsa); return 0;}

以上是源代码,下面使用下面的编译命令在源码所在路径下生成可执行文件 gcc *.c -o openssl_test -lcrypto -ldl -L/usr/local/ssl/lib -I/usr/local/ssl/include其中,-lcrypto和-ldl是必须的,前者是OpenSSL中的加密算法库,后者是用于成功加载动态库。

H. 用openssl对文件加密解密的详细正确程序

不好说,直接用TRUECPYPT吧

I. openssl 对称加密有哪些

OpenSSL一共提供了8种对称加密算法,其中7种是分组加密算法,仅有的一种流加密算法是RC4。这7种分组加密算法分别是AES、DES、Blowfish、CAST、IDEA、RC2、RC5。
参考网络。

阅读全文

与openssl支持加密相关的资料

热点内容
半夜解压有什么坏处 浏览:424
linux代理命令 浏览:637
调用tasking的编译器编译 浏览:292
青柠app是什么 浏览:866
linuxapachephp56 浏览:395
安卓手机如何打开eng文件 浏览:22
看拉丁电视都用什么app好 浏览:778
什么是哲学pdf 浏览:509
hdfs的三个下载命令 浏览:524
java常用的排序算法 浏览:357
51单片机连接adc 浏览:859
python命名变量报错 浏览:120
安卓手机如何换windows系统 浏览:612
python中的类是什么 浏览:631
我的英雄学院用哪个app可以看 浏览:36
excel插入选项卡对象命令 浏览:695
python字符全排列 浏览:506
824页大瓜文件pdf 浏览:222
朔州ios源码 浏览:251
算法逻辑电路 浏览:943