Tag: 加密

AES EVP_Decrypt的“长度”参数是什么?

这与OpenSSL上的EVP_DecryptFinal_ex错误相关联 我试图找出为什么AES解密不起作用,最后我找到了问题所在,现在正在找人帮我解决它:) 这是我测试过的代码(来自各个post): #include #include #include #include int AES_BLOCK_SIZE = 128; int main(int argc, char **argv) { EVP_CIPHER_CTX en; EVP_CIPHER_CTX de; EVP_CIPHER_CTX_init(&en); EVP_CIPHER_CTX_init(&de); const EVP_CIPHER *cipher_type; unsigned char *passkey, *passiv, *plaintxt; char *plain; char *plaintext; unsigned char *ciphertext; int olen, len; int i =0; unsigned char iv[] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, […]

C示例中的AES,Serpent或Twofish?

我在C中发现了很多AES,Twofish和Serpent的实现。但我真的不明白这些例子。 我只知道有些地方提供了反转矩阵的例子。 有人可以指向我的示例或.c文件来加密/解密由char*和密码表示的数据吗?

使用OpenSSL计算并打印文件的SHA256哈希值

我正在尝试使用OpenSSL / libcrypto编写一个C函数来计算文件的SHA256总和。 我的代码基于Adam Lamer的c ++示例。 这是我的代码: int main (int argc, char** argv) { char calc_hash[65]; calc_sha256(“file.txt”, calc_hash); } int calc_sha256 (char* path, char output[65]) { FILE* file = fopen(path, “rb”); if(!file) return -1; char hash[SHA256_DIGEST_LENGTH]; SHA256_CTX sha256; SHA256_Init(&sha256); const int bufSize = 32768; char* buffer = malloc(bufSize); int bytesRead = 0; if(!buffer) return -1; […]

AES加密 – 使用OpenSSL生成密钥

作为参考和作为post的延续: 如何使用OpenSSL解密Java AES加密数据? 我有以下问题。 我正在使用OpenSSL库和C编程来加密aes-cbc-128中的数据。 我得到任何输入二进制数据,我必须加密它。 我了解到Java有一个CipherParameters接口来设置IV和KeyParameters。 有没有办法使用openSSL生成IV和密钥? 简而言之,如何在C程序中使用openSSL的随机生成器来实现这些目的。 你们中的任何人都可以提供一些文档/示例/链接吗? 谢谢

在x86中有加速SHA(SHA1 / 2/256/512)编码的任何指令吗?

例如,在x86中是指令集到硬件加速AES 。 但是在x86中是否存在加速SHA(SHA1 / 2/256/512)编码的任何指令,以及在x86上编码SHA的紧固库是什么?

RSA加密/解密

我正在编写一个C程序,用于加密(基于私钥)和解密(基于公钥)文本。 我正在尝试使用OpenSSL lib。 有谁知道任何好的教程,快速入门指南或示例代码? 我没有在网上找到任何像样的人。

具有AES-NI支持的EVP接口

在C / C ++中使用OpenSSL加密库时,EVP接口是否自动支持AES-NI硬件加速(假设处理器支持)? 参考这个 ,看起来命令行OpenSSL确实有支持。 我想知道是否有特定的函数调用,我必须使用它来利用这种支持。 例如,如果我使用EVP_EncryptInit_ex(ctx, type, imp, key, iv) ,那么这些参数中的任何一个都必须指定NI加速度吗? 即EVP_EncryptInit_ex(ctx, EVP_aes_256_cbc(), NULL, key, iv)诀窍? 谢谢!

产品密钥的实现

我正在用C实现一个小应用程序,我希望以后以合理的价格出售它作为共享软件。 它将开始为期30天的试用,我已经非常确定如何实施它。 但问题是,我不太确定如何实施产品密钥validation。 我的想法是,客户可以在我的网页上注册(在尝试产品一段时间后),支付产品费用,并通过eaaabbbb-ccccc-ddddd-eeeee获取产品密钥邮件(或者可以通过我在我网站上的个人资料获得)。 到目前为止没问题。 然后他/她将密钥放在我的应用程序中的相应关键字段中,并且应用程序已注册。 从目前为止我可以收集到的,人们要么推荐AES或RSA。 说实话,我在大学的另一个方向(不是密码学)和我之前的一个密码学课程。 但根据我的记忆,AES是一种对称加密算法,这意味着我只有一个加密和解密密钥,对吗? 我怎么能生成数以千计的产品密钥,仍然在我的应用程序中validation它们(顺便说一下,不需要互联网访问….所以不用服务器检查)? 所以我猜RSA会是要走的路? 但是RSA不能生成相当长的密钥(至少比上面要求的25个字符长)吗? 在另一个线程中,我读到有些产品甚至不会使用加密产品密钥生成/validation,而是只使用一些检查,如“添加2.和17.字符,这应该总计为x”。 什么是最快,最简单,最安全的方式? :-)代码样本将是糖! 问候, 塞巴斯蒂安 PS:哦……请不要告诉我我的钥匙怎么能在某个时候破解…..我知道这一点,这主要是为什么我不想花很多时间在这个问题,但同时不会让偶尔的cookies太容易。

使用C语言的openssl库进行简单的AES加密解密

我想加密一个包含少量String的结构,然后解密它。 我尝试了以下代码。 原始代码可以从网上找到,它运行得很好。 我将它的输入更改为结构。 以下是代码。 #include #include #include #include #include #include typedef struct ticket { /* test field */ int ticketId; char username[20]; char date[20]; } USR_TICKET; // a simple hex-print routine. could be modified to print 16 bytes-per-line static void hex_print(const void* pv, size_t len) { const unsigned char * p = (const unsigned […]

使用C / C ++对AES进行加密解密

如何使用C或C ++中的256键AES加密和解密文件?