Tag: 密码学

什么是最佳的scrypt工作因素?

我正在使用Java scrypt库来存储密码。 当我encryption文件时,它要求N , r和p值,其文档称之为“CPU成本”,“存储器成本”和“并行成本”参数。 唯一的问题是,我实际上并不知道他们具体是什么意思,或者对他们有什么好的价值。 也许他们以某种方式对应于Colin Percival的原始应用程序上的-t,-m和-M开关? 有没有人有这个build议? 图书馆本身列出了N = 16384,R = 8和P = 1,但我不知道这是强还是弱。

如何通过RSA生成唯一的公钥和私钥

我正在build立一个自定义的购物车,其中CC号和出借date将被存储在数据库中,直到处理(然后删除)。 我需要encryption这些数据(显然)。 我想使用RSACryptoServiceProvider类。 这是我的代码来创build我的密钥。 public static void AssignNewKey(){ const int PROVIDER_RSA_FULL = 1; const string CONTAINER_NAME = "KeyContainer"; CspParameters cspParams; cspParams = new CspParameters(PROVIDER_RSA_FULL); cspParams.KeyContainerName = CONTAINER_NAME; cspParams.Flags = CspProviderFlags.UseMachineKeyStore; cspParams.ProviderName = "Microsoft Strong Cryptographic Provider"; rsa = new RSACryptoServiceProvider(cspParams); string publicPrivateKeyXML = rsa.ToXmlString(true); string publicOnlyKeyXML = rsa.ToXmlString(false); // do stuff with keys… } 现在计划是将私钥xml存储在连接到pipe理器钥匙链的USB驱动器上。 […]

为什么人们使用bouncycastle而不是Java内置的JCE提供程序? 有什么不同?

为什么人们使用bouncycastle而不是Java Cryptography Extension? 有什么不同?

什么是导致MD5碰撞的最短的一对弦?

直到string长度为止,可以使用MD5作为哈希,而不必担心碰撞的可能性? 这大概可以通过为特定字符集中的每个可能的string生成一个MD5哈希来计算,直到哈希第二次出现(碰撞)为止。 没有碰撞的string的最大可能长度将比碰撞对中最长的字符小一个字符。 这已经testing了MD5,SHA1等?

如何在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 cffi-1.5.0.tar.gz Writing /tmp/easy_install-oUz7ei/cryptography-0.2.1/temp/easy_install-Yf2Yl3/cffi-1.5.0/setup.cfg Running cffi-1.5.0/setup.py […]

为什么使用C#类System.Random而不是System.Security.Cryptography.RandomNumberGenerator?

为什么会有人使用System.Random中的“标准”随机数生成器,而不是始终使用System.Security.Cryptography.RandomNumberGenerator (或其子类,因为RandomNumberGenerator是抽象的)中的密码安全的随机数生成器? Nate Lawson在分钟13:11的Google Tech Talk演讲中表示“ encryption反击 ”不会使用来自Python,Java和C#的“标准”随机数生成器,而是使用encryption安全版本。 我知道随机数发生器的两个版本之间的区别(见问题101337 )。 但是,有什么理由不总是使用安全的随机数发生器? 为什么要使用System.Random? 性能可能?

使用OpenSSL库在C ++中生成SHA哈希

如何使用OpenSSL libarary生成SHA1或SHA2哈希? 我search谷歌,找不到任何function或示例代码。

Android中的MD5散列

我有一个简单的Android客户端需要“谈”到一个简单的C#HTTP侦听器。 我想通过在POST请求中传递用户名/密码来提供基本的身份validation级别。 在C#中MD5哈希是微不足道的,并提供足够的安全性,我的需求,但我似乎无法find如何做到这一点在Android端。 编辑:只是为了解决有关MD5的弱点提出的担忧 – C#服务器运行在我的Android客户端的用户的个人电脑上。 在很多情况下,他们将在自己的局域网上使用Wi-Fi访问服务器,但是他们可能select通过互联网访问它们,但风险自负。 此外,服务器上的服务需要使用MD5传递给我无法控制的第三方应用程序。

鉴于最后的块没有正确填充

我想实现基于密码的encryptionalgorithm,但我得到这个exception: javax.crypto.BadPaddingException:给定的最终块未正确填充 可能是什么问题? (我是Java新手。) 这是我的代码: public class PasswordCrypter { private Key key; public PasswordCrypter(String password) { try{ KeyGenerator generator; generator = KeyGenerator.getInstance("DES"); SecureRandom sec = new SecureRandom(password.getBytes()); generator.init(sec); key = generator.generateKey(); } catch (Exception e) { e.printStackTrace(); } } public byte[] encrypt(byte[] array) throws CrypterException { try{ Cipher cipher = Cipher.getInstance("DES/ECB/PKCS5Padding"); cipher.init(Cipher.ENCRYPT_MODE, key); return cipher.doFinal(array); […]

没有HTTPS的login,如何保护?

对于Web应用程序,当HTTPS不可用作安全措施时,是否仍然可以使login有点安全? 例如: Tokenizelogin,使重复攻击困难? 以某种方式encryption从HTML密码字段发送的密码? 特别是我使用CakePHP和AJAX POST调用触发身份validation(包括提供的用户名和密码)。 问题更新: HTTPS不可用。 期。 如果你不喜欢这种情况,那么把它看作一个理论问题。 没有明确的要求,你有任何HTTP,PHP和浏览器(cookies,JavaScript等)在现实生活中提供(没有神奇的RSA二进制文件,PGP插件)。 问题是,什么是最好的,你可以做出这种情况,这比发送密码明文更好。 了解每个这样的解决scheme的缺点是一个加号。 欢迎任何比普通密码更好的改进。 我们不瞄准100%l33tG0Dhx0r-proff解决scheme。 难以破解比复杂的破解更好,这比揭示密码的琐事更好。