Tag: 加密

如何保证在运行时解密的文件被清除?

使用C或C ++,在将文件解密到磁盘后 – 如果应用程序崩溃或系统关闭且无法正常清理,我怎么能保证它被删除? 在Windows和Linux上使用C或C ++?

LibTomCrypt和LibTomMath开发状态?

LibTomCrypt过去似乎是一个非常可行和有用的加密选项。 相关的LibTomMath可能是一个有用的数学库。 但是最近,我看不到它的任何发展,而且对于什么是“当前”的网站来说它是模棱两可的。 例如: http://libtomcrypt.com/ 这指向http://libtom.org/ 旧页面 http://libtomcrypt.org/ (现在看起来已被域名抢注者接管) 在过去(Wayback Machine) 现状是什么,LibTomCrypt有未来吗?

如何使用RSA加密/解密长输入消息?

我写了一个简单的测试程序来加密/解密消息。 我有一个keylength : int keylength = 1024; // it can also be 2048, 4096 和最大输入长度: int maxlen = (keylength/8)-11; 我知道我的输入大小应该<而不是maxlen,如下所示: if(insize >= maxlen) printf(“cannot encrypt/decrypt!\n”); 我的问题很简单 – 是否有可能(如果是这样,我该怎么做)使用比maxlen RSA消息加密/解密? 主要代码也非常简单但仅在insize <maxlen时有效: if((encBytes=RSA_public_encrypt(strlen(buff1)+1, buff1, buff2, keypair, RSA_PKCS1_PADDING)) == -1) { printf(“error\n”); } if((decBytes=RSA_private_decrypt(encBytes, buff2, buff3, keypair, RSA_PKCS1_PADDING)) == -1) { printf(“error\n”); }

如何处理C中的大量数字

我正在用C编写RSA加密算法。我不打算在任何地方投入生产,主要是因为我可以扩展我对加密的理解。 我如何处理RSA产生的大量数字? 即使使用像103这样的相对较小的私钥进行解密,我仍然有处理这样的事情的问题: 67 ^ 103 mod 143 =(1.21816096336830017301951805581 x 10 ^ 188)mod 143 存储多个大小的最佳方法是什么? 有没有办法使用标准库? 。

是否反复为随机数生成器播种合理的哈希函数?

我希望生成大量的随机数据,这些数据对于给定的key是可重现的,包括一个数字列表: [a, b, c, d, e, …] 以下是使RNG进入状态以生成随机数据的良好或明智的方式,对于每个n元组[a, b, c, …, n] ,该数据与该数据不相关。输出“相邻”n元组[a+1, b, c, …, n] , [a, b+1, c, …, n]等。 srand(a); srand(rand() * b); srand(rand() * c); … srand(rand() * n); # generate random data: for (int i=0; i < 100; +i) printf("%d", rand()); 我认为这个问题归结为以下几点: rand_hash是2元组(a, b)的良好哈希函数吗? int rand_hash(int a, int b) […]

用C加密/解密加密Python脚本

重复(我没有找到答案): https : //stackoverflow.com/questions/4066361/how-to-obfuscate-python-code 如何保护Python代码? 所以我查看了^^上面的两个链接,我发现没有什么用于实际加密python脚本和/或混淆python代码。 所以我是C的新手,但是在python中经验丰富,如果我想开发商业python项目,我最好的想法是: 创建ac脚本和加密和编译的python脚本 C脚本需要简单地提供字符串加密密钥并对其进行解密。 仅仅是因为我从未真正尝试加密,我知道这不会是完美的。 但我不需要完美。 我只是想让我的python源代码反编译更难,意识到这仍然很容易但不容易。 我目前看过Cython,我可以轻松生成一个* .c文件,现在如何将其编译为二进制文件? (与视觉工作室) 那么我怎样才能加密我的python代码并从C脚本解密它(我可以编译成二进制代码使其编辑起来更加困难)?

使用SecItemImport导入PKCS12

Apple的OS X 文档讨论了如何使用SecItemImport获取SecKeyRef 。 函数签名如下所示: OSStatus SecItemImport ( CFDataRef importedData, CFStringRef fileNameOrExtension, SecExternalFormat *inputFormat, SecExternalItemType *itemType, SecItemImportExportFlags flags, const SecItemImportExportKeyParameters *keyParams, SecKeychainRef importKeychain, CFArrayRef *outItems ); 以下代码将尝试加载包含单个RSA密钥的PKCS12字节数组: #include #include #include int main(void) { CFArrayRef array = NULL; SecItemImportExportKeyParameters params; SecExternalItemType itemType = kSecItemTypeUnknown; SecExternalFormat format = kSecFormatUnknown; params.flags = kSecKeyNoAccessControl; UInt8 bytes[] = { 0x30, […]

在“C”程序中,如何在字符串变量中存储hex值?

我有一个程序,它将输入数据作为明文,然后在CBC模式下使用3DES方法解密消息。 但是这些值在程序中是硬编码的,我想自己提供加密值,应该对其进行解密。 我怎样才能在以下程序中执行此操作? int main(void) { unsigned char in[BUFSIZE], out[BUFSIZE], back[BUFSIZE]; unsigned char *e = out; int len; DES_cblock key; DES_cblock seed = {0xFE, 0xDC, 0xBA, 0x98, 0x76, 0x54, 0x32, 0x10}; DES_cblock ivsetup = {0xE1, 0xE2, 0xE3, 0xD4, 0xD5, 0xC6, 0xC7, 0xA8}; DES_key_schedule keysched; DES_cblock ivec; memset(in, 0, sizeof(in)); memset(out, 0, sizeof(out)); memset(back, 0, sizeof(back)); […]

evp_encrypt不能在c中的for循环中工作

我是新来的,所以请原谅我做错了什么。 我尝试使用加密字符串创建一个数组,我正在使用EVP API进行加密。 这工作正常,但是我尝试在foor循环中使用加密function,控制台什么也没给我。 这是我的加密function: char *encrypt(char *key, char *iv, char * source){ //char *target; int in_len, out_len; EVP_CIPHER_CTX ctx; in_len=strlen((const char *)source); unsigned char *target = (unsigned char *) malloc(in_len); //printf(“This is the text before ciphering: %s\n”,source); //printf(“The length of the string is: %d\n”,in_len); //starting the encryption process EVP_CIPHER_CTX_init(&ctx); EVP_EncryptInit_ex(&ctx,EVP_aes_128_cbc(),NULL,(unsigned char*) key,(unsigned char*)iv); EVP_EncryptUpdate(&ctx,target,&out_len,(unsigned […]

PHP中的XTEA加密和C中的解密

我正在尝试在网站和Arduino之间建立通信。 我需要validation从我的网站到Arduino的所有消息,所以我发现使用XTEA加密技术的时间更少。 我的网站PHP代码是: mcrypt_encrypt(MCRYPT_XTEA, ‘qwertyuiasdfghjk’, ‘asdfasdf’, MCRYPT_MODE_ECB); 其中“qwertyuiasdfghjk”是128位密钥,“asdfasdf”是64位消息。 在Arduino方面,我正在使用: void _xtea_dec(void* dest, const void* v, const void* k) { uint8_t i; uint32_t v0=((uint32_t*)v)[0], v1=((uint32_t*)v)[1]; uint32_t sum=0xC6EF3720, delta=0x9E3779B9; for(i=0; i<32; i++) { v1 -= ((v0 <> 5) + v0) ^ (sum + ((uint32_t*)k)[sum>>11 & 3]); sum -= delta; v0 -= ((v1 <> 5) + v1) ^ […]