Tag: aes

不兼容的AES实施?

我已经从这个站点编译了一些AES实现代码,它应该是128位密钥加密。 我测试了一起工作正常的加密/解密程序。 但是,如果我用上面提到的代码加密任何东西,然后尝试通过linux内置的openssl工具解密它,我就是无法解密它,它甚至会记录我的错误幻数错误。 同样,如果我使用openssl加密任何东西并尝试使用代码解密将无法正常工作。 我试过用cbc ecb。 如果他们都在实施AES,它不应该以同样的方式工作吗?

使用KEY的Openssl / libcrypto AES 128编码

我正在使用AES-128-ECB加密某个字符串,然后将结果保存在文件中,例如test.enc这是我执行加密的方法: int do_crypt(char *outfile) { unsigned char outbuf[1024]; int outlen, tmplen; unsigned char key[] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; char intext[] = “Some Text”; EVP_CIPHER_CTX ctx; FILE *out; EVP_CIPHER_CTX_init(&ctx); EVP_EncryptInit_ex(&ctx, EVP_aes_128_ecb(), NULL, key, NULL); if(!EVP_EncryptUpdate(&ctx, outbuf, &outlen, intext, strlen(intext))) { /* Error */ return 0; } /* Buffer passed to EVP_EncryptFinal() must be after data just * encrypted […]

Openssl aes.h 未定义引用

我尝试使用OpenSSL ibaries进行AES解密的简单测试程序。 编译器/链接器向我显示错误。 编译器:Dev-Cpp [Linker error] undefined reference to `AES_set_decrypt_key’ [Linker error] undefined reference to `AES_decrypt’ 码: #include #include int main(){ AES_KEY k; unsigned char key[]=”2641cf97291c6ea02b930a4e2a824990″; unsigned char in[]=”adc8f4ad114433ffaf4597c9738d257c504db763c29d238aa05bd21e1107809f”; unsigned char out[150]; AES_set_decrypt_key(key, 256, &k); AES_decrypt(in, out, &k); printf(“%s\n”, out); } TNX

使用EVP接口的AES-GCM的OpenSSL C示例

对于AES-GCM加密/解密,我试过这个,但它有一个问题。 ctx = EVP_CIPHER_CTX_new(); //Get the cipher. cipher = EVP_aes_128_gcm (); #define GCM_IV “000000000000” #define GCM_ADD “0000” #define TAG_SIZE 16 #define ENC_SIZE 64 //Encrypt the data first. //Set the cipher and context only. retv = EVP_EncryptInit (ctx, cipher, NULL, NULL); //Set the nonce and tag sizes. //Set IV length. [Optional for GCM]. retv = EVP_CIPHER_CTX_ctrl […]

如何在C ++中使用openssl / md5来加密字符串?

我需要在我的程序中将md5中的字符串加密。 有一个lib openssl,但我是一个新手。 如何使用它来加密一个字符串,哪里可以找到一个好的doc,教我如何使用这个lib,还有其他函数如aes? 我试过这段代码: int main() { unsigned char result[MD5_DIGEST_LENGTH]; const unsigned char* str; str = (unsigned char*)”hello”; unsigned int long_size = 100; MD5(str,long_size,result); } 但是编译器告诉我:未定义的MD5引用。 为什么MD5有未定义的引用?

C示例中的AES,Serpent或Twofish?

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

AES ECB加密/解密仅解密前16个字节

我有解码AES 256字符串的function,但它只返回16个字符 bool decrypt_block(unsigned char* cipherText, unsigned char* plainText, unsigned char* key) { AES_KEY decKey; if (AES_set_decrypt_key(key, 256, &decKey) < 0) return false; AES_decrypt(cipherText, plainText, &decKey); return true; } decrypt_block( encoded, resultText, ( unsigned char *) “57f4dad48e7a4f7cd171c654226feb5a”); 任何的想法

AES加密 – 使用OpenSSL生成密钥

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

使用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 […]

OpenSSL AES 256 CBC通过EV中的EVP api

我要做的是:在C中编写一个程序,打开一个任意大小的文件并读取其内容。 一旦读取内容,它将在AES 256 CBC中对它们进行加密,并将密文保存到名为密文的文件中。 保存后,它将关闭这两个文件。 然后将打开刚刚保存的文件中的密文并解密密文并将其保存到名为decrypted的文件中。 我的问题:似乎永远不会解密我的密文。 我得到垃圾,我不知道我做错了什么。 请帮忙。 #include #include #include #include #include void encrypt(FILE *ifp, FILE *ofp) { //Get file size fseek(ifp, 0L, SEEK_END); int fsize = ftell(ifp); //set back to normal fseek(ifp, 0L, SEEK_SET); int outLen1 = 0; int outLen2 = 0; unsigned char *indata = malloc(fsize); unsigned char *outdata = malloc(fsize*2); […]