草庐IT

encryption - 在 Go 中使用 RSA 进行 key 交换的 AES 加密通信

我正在尝试在基于RubySinatra的网络后端和GoogleGo应用程序之间建立安全通信。Go应用程序包含公钥并最初打开连接。然后它使用其公钥加密随机生成的AES,并将其发送到Web后端。所有即将到来的(大容量)数据都将使用AESkey加密。这是一般可用的方法吗?Go代码如下所示aesRand:=make([]byte,32)rand.Read(aesRand)AESBlock,_=aes.NewCipher(aesRand)//EncryptAESkeywithRSAdata,err:=rsa.EncryptPKCS1v15(rand.Reader,PubKey,aesRand)现

encryption - Go 相当于 OpenSSL EVP 对称 EVP_aes_256_cbc

我正在编写一个Go脚本,它将解密一些使用EVP_aes_256_cbc和RSA公钥加密的遗留数据。在C中,这类似于:key_size=EVP_OpenInit(&ctx,EVP_aes_256_cbc(),evp_key,eklen,iv,pkey);//...EVP_OpenUpdate(&ctx,destination,&len_out,buffer_in,buffer_size)//...EVP_OpenFinal(&ctx,destination+len_out,&len_out);我在Go中有evp_key和iv字节数组等价物,但我必须承认我无法理解EVP在OpenSSL中的

xml - 将 AES 加密字节和 IV 存储到 XML 的最佳方法?

我对编码和密码学都不熟悉,所以我问的问题可能太基础了。我需要对提供给我的值进行加密,并将加密后的值以及用于加密的IV存储在文档中。加密是使用存储在别处的主key完成的。我使用AES加密,加密代码如下所示:privateEncryptedDataEncryptValue(stringvalue,byte[]encryptedMasterKey){byte[]encryptedValue=newbyte[0];AesCryptoServiceProvideraesCryptoServiceProvider=null;//decryptthemasterkeyencryptedMasterK

CTR-AES256 加密与 OpenSSL -aes-256-ctr 不匹配

我的问题是我无法从下面的C代码中获取AES256CTR输出以匹配下面OpenSSL命令的输出。C代码产生这个:5fb718d128627f5035bae967a717ab22f9e409ce23267b938202d387eb0126ac962c018cc8aff3dea4187f2946002e00OpenSSL命令行产生这个:5fb718d128627f5035bae967a717ab223c0111bd391474763157a653f90009b46fa949bc6d0077242defb9c4注意前16个字节是相同的,因为nonceIV是相同的,但是,当nonceIV在下一次

windows - UWP 中用于 Xamarin Forms 项目的 AES 加密

我有几个简单的加密函数需要在Windows10的新UWP应用程序中使用。由于AesManaged在UWP中不可用,我查看了Windows.Security.Cryptography.Core文档和此处的帖子,但似乎无法让它发挥作用。例如,我还没有找到设置填充的位置。这两个函数使用也在字节数组中的key对字节数组缓冲区的内容进行加密和解密。byte[]Buffer;privatevoidEncryptBuff(byte[]sessionKey){AesManagedmyAes=newAesManaged();myAes.Mode=CipherMode.ECB;myAes.KeySize=

c++ - 在我的 C++ 程序中有一种方法可以检查 CPU 是否有 AES-NI

我希望能够在Windows上使用C++代码检查CPU是否具有可用的AES-NI。(MinGW海湾合作委员会)我找到了一个用C#和visualstudio编写的解决方案。TestforAES-NIinstructionsfromC#privatestaticboolIsAESNIPresent(){byte[]sn=newbyte[16];//!!!Herewere8bytesif(!ExecuteCode(refsn))returnfalse;varecx=BitConverter.ToUInt32(sn,8);return(ecx&(1有没有一种简单的方法可以用C++做同样的事情?(

c++ - 文件未完全解密,AES CBC 模式。第一个 block 没有解密。 WCAPI

好的,我有5个文件正在加密。我没有设置IV。第一个文件解密没问题,然后剩余文件的第一个block不被解密。所以文件解密99%。我尝试将IV设置为静态值和随机值,结果相同。要100%解密,我加密的第一个文件不必是我解密的第一个文件。哪个让我相信它与解密有关?因此,为了加密,我导入了一个aeskey来创建一个key句柄。然后我加密一个文件并使用相同的key句柄移动到另一个文件...我应该为每个文件设置一个新的key句柄吗?是否有清除按键句柄的功能?有什么东西告诉我WCAPI正在使用上一个文件的最后一个block作为下一个文件的IV?如果我可能误解了什么,请原谅我。这里是decrypt_fi

c++ - 我如何在 BCrypt 中使用带有 secret 的 AES-GMAC?

我正在尝试将AES-GMAC与BCrypt(如果有帮助,则为MicrosoftCNG)一起使用,但文档似乎与我的预期相矛盾。RFC4543声明AES-GMAC需要一个key(这是我所期待的),但是BCryptCreateHashfunction指出pbSecret除非BCRYPT_ALG_HANDLE_HMAC否则不使用提供。我试过使用BCRYPT_ALG_HANDLE_HMAC在BcryptOpenAlgorithmProvider正如我所料,我得到一个NOT_SUPPORTED使用BCRYPT_AES_GMAC_ALGORITHM时与BCRYPT_ALG_HANDLE_HMAC.我

c++ - 在 Windows 上以编程方式解压缩 AES 加密的 zip 文件

我需要能够从Windows上的某些C/C++代码中解压缩一些AES(WinZip)加密的zip文件。有人有办法做到这一点吗?我希望有一些合适的代码或我可以使用的DLL(使用示例)。到目前为止,我的搜索没有结果。通常规定的InfoZip库不支持AES加密。目前我拥有的最佳解决方案是从我的程序调用7z.exe命令行程序,但考虑到我将解压缩100个左右的文件,这不太理想。 最佳答案 这是minizipzlib的贡献,它支持AES加密和解密。https://github.com/nmoinvaz/minizip

c# - 大文件 AES 加密

我需要加密和解密大文件(~1GB)。我尝试使用这个例子:http://www.codeproject.com/Articles/769741/Csharp-AES-bits-Encryption-Library-with-Salt但我的问题是因为文件非常大,我遇到了outOfMemory异常。所以我需要用文件流替换内存流,我只是不知道该怎么做......(添加我的代码:)privatestaticvoidAES_Encrypt(stringsrcFile,stringencryptedFile,byte[]passwordBytes){//Setyoursalthere,changei