Questions tagged «cryptography»

密码学必须进行编程。密码学尤其涵盖加密,散列和数字签名。与crypto.stackexchange.com更好地询问与软件开发不直接相关的密码学问题。


5
如何创建和使用随机数
我正在运行一个网站,并且有一个计分系统,可为您提供玩游戏次数的积分。 它使用散列来证明http请求评分的完整性,因此用户无法更改任何内容,但是正如我担心的那样,有人发现他们不需要更改它,他们只需要获得高分并复制http请求,标头和所有。 以前,我被禁止防范此攻击,因为它被认为不太可能。但是,既然已经发生,我可以。http请求源自Flash游戏,然后由php验证,然后php将其输入数据库。 我很确定随机数会解决该问题,但是我不确定如何实现它们。建立随机数系统的常见且安全的方法是什么?


1
Microsoft加密API禁用RSAES-OAEP密钥传输算法的使用
我CryptEncryptMessage用来生成PKCS#7一封信封邮件。我正在使用szOID_NIST_AES256_CBC作为加密算法。 生成的消息似乎是有效的,但是它是RSAES-OAEP针对密钥传输算法的,它在野外的支持有限(Thunderbird,OpenSSL SMIME Module等不支持它)。 我希望CAPI恢复为旧版本RSAencryption以进行密钥传输。 有没有办法做到这一点,如果有办法而不是使用,我可以回复到低级消息传递功能 CryptEncryptMessage但是即使使用低级功能,我也找不到方法。 码: CRYPT_ENCRYPT_MESSAGE_PARA EncryptMessageParams; EncryptMessageParams.cbSize = sizeof(CMSG_ENVELOPED_ENCODE_INFO); EncryptMessageParams.dwMsgEncodingType = PKCS_7_ASN_ENCODING; EncryptMessageParams.ContentEncryptionAlgorithm.pszObjId = szOID_NIST_AES256_CBC; EncryptMessageParams.ContentEncryptionAlgorithm.Parameters.cbData = 0; EncryptMessageParams.ContentEncryptionAlgorithm.Parameters.pbData = 0; EncryptMessageParams.hCryptProv = NULL; EncryptMessageParams.pvEncryptionAuxInfo = NULL; EncryptMessageParams.dwFlags = 0; EncryptMessageParams.dwInnerContentType = 0; BYTE pbEncryptedBlob[640000]; DWORD pcbEncryptedBlob = 640000; BOOL retval = CryptEncryptMessage(&EncryptMessageParams, cRecipientCert, pRecipCertContextArray, pbMsgText, …

3
如何在ubuntu上安装加密技术?
我的Ubuntu版本是14.04 LTS。 当我安装密码术时,错误是: Installing egg-scripts. uses namespace packages but the distribution does not require setuptools. Getting distribution for 'cryptography==0.2.1'. no previously-included directories found matching 'documentation/_build' zip_safe flag not set; analyzing archive contents... six: module references __path__ Installed /tmp/easy_install-oUz7ei/cryptography-0.2.1/.eggs/six-1.10.0-py2.7.egg Searching for cffi>=0.8 Reading https://pypi.python.org/simple/cffi/ Best match: cffi 1.5.0 Downloading https://pypi.python.org/packages/source/c/cffi/cffi-1.5.0.tar.gz#md5=dec8441e67880494ee881305059af656 Processing …

2
使用Node.js和MongoDB存储密码
我正在寻找一些有关如何使用node.js和mongodb安全存储密码和其他敏感数据的示例。 我希望所有内容都使用一种独特的盐,该盐将与哈希一起存储在mongo文档中。 为了进行身份验证,我是否仅需要盐析和加密输入并将其与存储的哈希值匹配? 我是否应该解密这些数据,如果是,该怎么做? 私钥或什至加盐方法如何安全地存储在服务器上? 我听说AES和Blowfish都是不错的选择,我应该使用什么? 任何有关如何设计的示例都将非常有用! 谢谢!

6
将SHA1和RSA与java.security.Signature和MessageDigest和Cipher结合使用
我试图了解Java java.security.Signature类的作用。如果我计算一个SHA1消息摘要,然后使用RSA对该摘要进行加密,则得到的结果与要求Signature类对同一事物进行签名的结果不同: // Generate new key KeyPair keyPair = KeyPairGenerator.getInstance("RSA").generateKeyPair(); PrivateKey privateKey = keyPair.getPrivate(); String plaintext = "This is the message being signed"; // Compute signature Signature instance = Signature.getInstance("SHA1withRSA"); instance.initSign(privateKey); instance.update((plaintext).getBytes()); byte[] signature = instance.sign(); // Compute digest MessageDigest sha1 = MessageDigest.getInstance("SHA1"); byte[] digest = sha1.digest((plaintext).getBytes()); // Encrypt digest …

3
最佳加密工作因素是什么?
我正在使用Java scrypt库进行密码存储。当我加密事物时N,它需要一个r和p值,其文档称为“ CPU成本”,“内存成本”和“并行化成本”参数。唯一的问题是,我实际上不知道它们的具体含义,或者对他们有什么好的价值。也许它们以某种方式对应于Colin Percival原始应用程序上的-t,-m和-M开关? 有人对此有任何建议吗?该库本身列出了N = 16384,r = 8和p = 1,但是我不知道这是强还是弱还是什么。


5
密码安全的随机数生成器如何工作?
我了解标准随机数生成器的工作原理。但是当使用密码术时,随机数确实必须是随机的。 我知道有些仪器可以读取宇宙白噪声以帮助生成安全的哈希,但是您的标准PC却没有。 密码安全的随机数生成器如何获得没有可重复模式的值?

3
我了解/ dev / urandom吗?
我一直在阅读/dev/urandom,据我所知,我/dev/random利用网络数据包定时等事件创建了密码随机数。但是,我是否理解/dev/urandom使用PRNG并从中植入数字的权利/dev/random?还是/dev/random只要有一点就使用它-当它们用完时会回落到PRNG并从哪里收集种子?

2
我可以对std :: array使用自定义分配器来获得安全的加密密钥吗?
我知道它std::array是完全分配在堆栈中的,但是这个问题是由需要考虑两点的安全问题引起的: 输入的数据在std::array销毁时将归零或随机化 输入中的数据std::array将被锁定,因此无论是崩溃还是交换内存,它都不会进入磁盘 通常情况下,用std::vector的解决方案是创建一个自定义分配器的是做这些事情。但是,对于std::array,我没有看到如何执行此操作,因此也没有看到这个问题。 我能做的最好的事情是: template <typename T, std::size_t Size> struct SecureArray : public std::array<T, Size> { static_assert(std::is_pod<T>::value, "Only POD types allowed") static_assert(sizeof(T) == 1, "Only 1-byte types allowed") virtual ~SecureArray() { std::vector<uint8_t> d = RandomBytes(Size); // generates Size random bytes std::memcpy(this->data(), d.data(), Size); } } 但这显然缺少内存锁定,std::array这使首先要使用的性能方案变得复杂std::array。 有更好的解决方案吗?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.