相关疑难解决方法(0)

AES CTR 256加密OpenSSL上的操作模式

我是OpenSSL的新手,任何人都可以给我一个如何从C文件初始化AES CTR模式的提示.我知道这是方法的签名但是我遇到了参数问题,没有很多文档也没有明确的例子如何进行简单的加密.如果有人可以举例说明这种方法,我将不胜感激.提前致谢!

void AES_ctr128_encrypt(const unsigned char *in, unsigned char *out,
    const unsigned long length, const AES_KEY *key,
    unsigned char ivec[AES_BLOCK_SIZE],
    unsigned char ecount_buf[AES_BLOCK_SIZE],
    unsigned int *num);
Run Code Online (Sandbox Code Playgroud)

Hi Caf我非常感谢你的快速回答它真的很有用,并且是我在网上找到的最好的例子.我试图打开与未定长度的文件进行加密和写入与生成密文的另一个文件,然后打开加密的文件,并恢复明文.我需要使用相当数量MB的文件,因为我想对CPU的性能进行基准测试.但是我在解密时仍然遇到问题.不知何故,当解密一个相当大的txt文件(1504KB)时,它不会解密它完成,我得到一半的明文,另一半仍然加密.我认为这可能与iv的大小或我打电话给柜台的方式有关.这是我到目前为止:

#include <openssl/aes.h>
#include <stdio.h>
#include <string.h>

struct ctr_state { 
    unsigned char ivec[16];   
    unsigned int num; 
    unsigned char ecount[16]; 
}; 

FILE *fp;
FILE *rp;
FILE *op;
size_t count;   
char * buffer; 
AES_KEY key; 

int bytes_read, bytes_written;   
unsigned char indata[AES_BLOCK_SIZE]; 
unsigned char outdata[AES_BLOCK_SIZE];  
unsigned char ckey[] =  "thiskeyisverybad"; // It is 128bits though..
unsigned …
Run Code Online (Sandbox Code Playgroud)

c openssl aes

17
推荐指数
1
解决办法
4万
查看次数

OpenSSL使用EVP与算法API进行对称加密

嗨,我已经在我的linux机器上安装了openssl并通过头文件和文档(这是非常不充分的:().

我正在尝试构建一个使用对称加密算法的项目(在'c'中)(我专注于aes256cbc).问题是我很困惑如何在我的代码中使用库函数.

对于我实现的aes256cbc,我可以直接使用'aes.h'头文件中定义的函数(首先在我看来).

但在google搜索中我遇到了一些使用'evp.h'函数的教程来做这个http://saju.net.in/code/misc/openssl_aes.c.txt

是否有特定原因或直接访问aes.h函数更好.

而且,如果有人能够指出我使用openssl的加密库的任何类型的良好文档/教程将非常感激.

非常感谢

如果我天真,PS原谅我

c linux openssl cryptography

17
推荐指数
1
解决办法
2万
查看次数

无法链接OpenSSL代码

我正在尝试构建一个openssl简单程序.这是完整的代码:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "openssl/aes.h"

int main(int argc, char* argv[])
{
    AES_KEY aesKey_;
    unsigned char userKey_[16];
    unsigned char in_[16];
    unsigned char out_[16];
    strcpy(userKey_,"0123456789123456");
    strcpy(in_,"0123456789123456");

    fprintf(stdout,"Original message: %s", in_);
    AES_set_encrypt_key(userKey_, 128, &aesKey_);
    AES_encrypt(in_, out_, &aesKey_);

    AES_set_decrypt_key(userKey_, 128, &aesKey_);
    AES_decrypt(out_, in_,&aesKey_);
    fprintf(stdout,"Recovered Original message: %s", in_);      
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我尝试使用此命令编译它:

gcc -I/home/aleksei/openSSL0.9.8/include -o app -L . -lssl -lcrypto tema1.c
Run Code Online (Sandbox Code Playgroud)

我明白了

 /tmp/ccT1XMid.o: In function `main':
 tema1.c:(.text+0x8d): undefined reference to `AES_set_encrypt_key'
 tema1.c:(.text+0xa7): undefined reference to `AES_encrypt'
 tema1.c:(.text+0xbf): undefined reference to …
Run Code Online (Sandbox Code Playgroud)

c linux encryption openssl cryptography

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

c ×3

openssl ×3

cryptography ×2

linux ×2

aes ×1

encryption ×1