草庐IT

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# - 为什么我的解密文本中出现随机字符?

介绍我正在尝试加密和解密文本,有时,尤其是对于较大的文本,解密文本中会出现随机字符。我在System.Security.Cryptography命名空间内使用AES密码术,我现在尝试加密的文本将是一个URL和一些信息,例如页面标题。我在下面提供了一个示例以及我尝试过的内容。我还编写了两种加密和解密方法,减去了输出到调试窗口的任何行。使用的Key和IV应该不是问题,因为目前它们是不变的。我认为明智的做法是指出它按预期在单独的事件中加密和解密18/01/2013;18/01/2013。例子假设我想解密这段文字:BarnabeGooges信息和主页|在BarnabeGooge.com上搜索和

c# - REST API token 认证

我刚刚开始在.NET中开发我的第一个RESTAPI。由于它将是无状态的,我将使用token进行身份验证:基本思想(System.Security.Cryptography):AES加密+HMACSHA256完整性token数据将包含具有属性的对象:用户名、发行日期和超时数据库将保存用户名、哈希密码和HMAC哈希登录:检查凭据是否有效(用户名,将散列密码与数据库值进行比较)如果为真,加密数据对象在生成的token上使用HMAC并将其存储到数据库将token(无HMAC)返回给用户(cookie/字符串)请求需要身份验证的方法:用户在每个请求中发送tokentoken已解密如果过期了,报错

c# - 用 PHP 重写 Rijndael 256 C# 加密代码

我有一个用C#编写的加密/解密算法-我需要能够在PHP中生成相同的加密,以便我可以通过HTTP发送加密文本,以便在C#端解密。这是用于加密的C#代码。this.m_plainText=string.Empty;this.m_passPhrase="passpharse";this.m_saltValue="saltvalue";this.m_hashAlgorithm="SHA1";this.m_passwordIterations=2;this.m_initVector="1a2b3c4d5e6f7g8h";this.m_keySize=256;publicstringEncrypt

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

c# - 如何在 .NET 中使用 CNG(或支持 AES-NI 的指令集)?

我目前使用AES在c#中执行大量文本加密/解密。对于纯软件系统,需要解密大量数据集可能需要相当长的处理器时间。我知道英特尔已经推出了他们的AES-NI指令集,而AMD也推出了类似的指令集。我使用的是.NET4.0,我知道WindowsCNG框架使用这些指令集,但.NET世界中的AesManaged似乎并没有这样做。有一个很棒的项目“CLRSecurity”,它创建了一个从.NET3.5到WindowsCNG的网关,但是它已经一年没有维护了,我宁愿(如果可能的话)不要跳上一个垂死的项目。.NET4中有一个CNGProvider类,但似乎没有足够的文档来为AES拼凑一个有效的解密。有没有人

c# - C# AES 算法何时会符合 FIPS 标准?

现在我唯一能得到RijndaelManaged的方法在打开FIPS的本地安全设置的计算机上工作的算法是disableit.这是一台政府计算机,所以我不确定它会如何运行。我在msdnblogsites上看过帖子说他们正在开发符合AESFIPS标准的版本,但我似乎无法找到更多信息。有谁知道什么时候会发生这种情况? 最佳答案 在这个问题之前我从来没有意识到这一点,但你是对的。构造函数有这个:publicRijndaelManaged(){if(Utils.FipsAlgorithmPolicy==1){thrownewInvalidOpe