Tag: cryptography

崩溃将AndroidKeyStoreRSAPrivateKey转换为RSAPrivateKey

我正在学习本教程: 如何使用Android密钥存储密码和其他敏感信息 。 它(松散地)与Google示例应用程序: BasicAndroidKeyStore绑定 。 我可以使用公钥encryption我的数据,并且可以在运行棒棒糖的设备上解密。 不过,我有一个Nexus 6运行棉花糖,这崩溃给错误: java.lang.RuntimeException: Unable to create application com.android.test: java.lang.ClassCastException: android.security.keystore.AndroidKeyStoreRSAPrivateKey cannot be cast to java.security.interfaces.RSAPrivateKey 这是它崩溃的代码: KeyStore.Entry entry; //Get Android KeyStore ks = KeyStore.getInstance(KeystoreHelper.KEYSTORE_PROVIDER_ANDROID_KEYSTORE); // Weird artifact of Java API. If you don't have an InputStream to load, you still need to call "load", or it'll crash. ks.load(null); […]

在JVM中注册多个密钥库

我有两个应用程序在同一个Java虚拟机上运行,​​并使用不同的密钥库和信任库。 一个可行的select是使用单个密钥库,并将其他所有的密钥库导入到共享密钥库(例如keytool -import)中,但是如果我可以将单独的密钥库用于在同一个jvm中运行的独立应用程序,那么这真的会有所帮助。 我可以将keystore和truststore设置为jvm参数或系统属性,如下所示: java -Djavax.net.ssl.keyStore=serverKeys -Djavax.net.ssl.keyStorePassword=password -Djavax.net.ssl.trustStore=serverTrust -Djavax.net.ssl.trustStorePassword=password SSLApplication 要么 System.setProperty("javax.net.ssl.keyStore","serverKeys") 但是这种方法的问题在于它指定了要在JVM级别使用的密钥库/信任库,因此在同一个JVM中运行的所有应用程序都获得相同的密钥库/信任库。 我也尝试创build一个自定义的SSLContext并将其设置为默认,但它也为在同一个JVM中运行的所有应用程序设置上下文。 SSLContext context = SSLContext.getInstance("SSL"); context.init(kms, tms, null); SSLContext.setDefault(context); 我希望能够使用不同的密钥库/信任库而不修改个别应用程序代码。 一个可以dynamic注册多个密钥库的解决scheme,除了jvm中的默认密钥库/证书之外,还是很棒的。 解决scheme将以这种方式工作: 当JVM引导时,它从jre / certs文件夹加载所有默认的certs / keystore(当没有指定keystores时默认的java行为)。 当应用程序1加载它注册其密钥库时, 然后当应用程序2加载注册其密钥库… 请让我知道你的想法或解决scheme。 提前致谢!

用Node.js和MongoDB存储密码

我正在寻找一些如何使用node.js和mongodb安全地存储密码和其他敏感数据的例子。 我希望一切都使用一个独特的盐,我将存储在mongo文件中的哈希旁边。 对于身份validation,我只需要salt和encryptioninput,并将其匹配到存储的散列? 我是否需要解密这些数据?如果有,我该怎么做? 私人密钥,甚至腌制方法如何安全地存储在服务器上? 我听说AES和Blowfish都是很好的select,我应该用什么? 如何devise这个例子将是非常有帮助的! 谢谢!

无法使用PIP和setup.py安装Pythonencryption包

当我尝试通过pip install cryptography安装Cryptography软件包或从他们的网站下载软件包并运行python setup.py ,出现以下错误: D:\Anaconda\Scripts\pip-script.py run on 02/27/14 16:13:17 Downloading/unpacking cryptography Getting page https://pypi.python.org/simple/cryptography/ URLs to search for versions for cryptography: * https://pypi.python.org/simple/cryptography/ Analyzing links from page https://pypi.python.org/simple/cryptography/ Skipping https://pypi.python.org/packages/cp26/c/cryptography/cryptography-0.2-cp26-none-win32.whl#md5=13e5c4b19520e7dc6f07c6502b3f74e2 (from https://pypi.python.org/simple/cryptography/) because it is not compatible with this Python Skipping https://pypi.python.org/packages/cp26/c/cryptography/cryptography-0.2.1-cp26-none-win32.whl#md5=00e733648ee5cdb9e58876238b1328f8 (from https://pypi.python.org/simple/cryptography/) because it is not compatible with this Python Skipping https://pypi.python.org/packages/cp27/c/cryptography/cryptography-0.2-cp27-none-win32.whl#md5=013ccafa6a5a3ea92c73f2c1c4879406 […]

java相当于php的hmac-SHA1

我在找一个相当于这个php调用的java: hash_hmac('sha1', "test", "secret") 我试过这个,用java.crypto.Mac ,但是两者不同意: String mykey = "secret"; String test = "test"; try { Mac mac = Mac.getInstance("HmacSHA1"); SecretKeySpec secret = new SecretKeySpec(mykey.getBytes(),"HmacSHA1"); mac.init(secret); byte[] digest = mac.doFinal(test.getBytes()); String enc = new String(digest); System.out.println(enc); } catch (Exception e) { System.out.println(e.getMessage()); } key =“secret”和test =“test”的输出似乎不匹配。

encryption/解密在两个不同的openssl版本之间不能正常工作

我已经下载并编译了openssl-1.1.0 。 我可以使用相同的openssl EXEencryption和解密(就像这里 ) me@ubuntu:~/openssl-1.1.0$ LD_LIBRARY_PATH=. ./apps/openssl aes-256-cbc -a -salt -in file.txt -out file.txt.enc enter aes-256-cbc encryption password: 123 Verifying – enter aes-256-cbc encryption password: me@ubuntu:~/openssl-1.1.0$ LD_LIBRARY_PATH=. apps/openssl aes-256-cbc -a -d -in file.txt.enc -out file.txt.dec enter aes-256-cbc decryption password: 123 这个openssl使用: libcrypto.so.1.1, libssl.so.1.1 当我尝试使用安装在我的ubuntu上的openssl进行解密时,它使用: /lib/x86_64-linux-gnu/libssl.so.1.0.0, /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 我得到一个错误: me@ubuntu:~/openssl-1.1.0$ openssl aes-256-cbc -a -d -in file.txt.enc […]

在C#中使用AESencryption

我似乎无法find使用AES 128位encryption的一个很好的干净的例子。 有没有人有一些示例代码?