草庐IT

Cryptography

全部标签

java - 使用 OpenSSL 签名消息;无法使用 Android Java 进行验证

我在使用OpenSSL的Ubuntu机器上使用SHA256和RSA对消息进行签名。我的目标是使用Android的Java在Android上验证此消息。在ubuntu上使用了以下命令:opensslgenrsa-outprivate.pem1024opensslrsa-inprivate.pem-outpublic.pem-outformPEM-puboutecho'foobar'>data.txtopenssldgst-sha256hashopensslrsautl-sign-inkeyprivate.pem-keyformPEM-inhash>signatureopensslrsa-

java - 如何创建用于身份验证目的的 ECDSA key ?

我正在尝试根据Californium.Scandium中的示例java文件在Android上设置DTLS服务器.最初我遇到了问题,因为keystore和信任库是jks格式,而我没有key密码。因此,我使用Portecle创建了自己的PKCS12keystore和信任库。KeyStorekeyStore=KeyStore.getInstance("PKCS12");in=getResources().openRawResource(R.raw.keystore);keyStore.load(in,KEY_STORE_PASSWORD.toCharArray());KeyStoretrus

Python:cryptography私钥公钥生成、序列化、加密解密、签名验签

cryptographyisapackagedesignedtoexposecryptographicprimitivesandrecipestoPythondevelopers.译文:cryptography是一个旨在向Python开发人员公开加密原语和配方的包。目录文档安装示例1、生成私钥和获取公钥2、私钥和公钥序列化3、私钥和公钥的反序列化4、公钥加密私钥解密5、私钥签名公钥验签源码RSAPrivateKey源码RSAPublicKey源码文档https://github.com/pyca/cryptographyhttps://pypi.org/project/cryptography

文件的 Android AES-128 加密/解密非常慢。我怎样才能提高速度

我正在开发一个Android应用程序来保护图像和视频,例如Vaulty和Keepsafe.我正在尝试使用AES-128加密/解密技术来存储图像和视频。我通过分别拍摄3个尺寸为5.13、4.76和5.31的样本图像来尝试。但加密耗时分别为25s、22s、27s,解密耗时分别为31s、30s、34s。我正在HTCOneX上测试它。这样的速度对于我的应用来说是不可行的,因为用户会快速滚动和查看图像而不会受到干扰。你能建议我如何提高性能(速度)或者我应该切换到其他算法吗?您能否向我推荐任何其他技术,通过这些技术我可以快速加密/解密图像和视频,而不会过多地损害安全性。我试过了Vaulty和Kee

java - Android 4.4解密错误

我有加密\解密文件的算法:privatestaticbyte[]encrypt(byte[]raw,byte[]clear)throwsException{SecretKeySpecskeySpec=newSecretKeySpec(raw,"AES");Ciphercipher=Cipher.getInstance("AES/ECB/PKCS5Padding");cipher.init(Cipher.ENCRYPT_MODE,skeySpec);byte[]encrypted=cipher.doFinal(clear);returnencrypted;}privatestaticby

JAVA-Android-根据 CA 证书(颁发者证书)验证 X509 证书

可能这是重复的问题,但我没有从上一个问题中完全清楚,这就是我发布新问题的原因。请看看这个。我会将Ca证书放在我的资源文件夹中以验证ca认证的证书,服务器中也会有相同的ca证书。我正在创建没有任何证书签名的.crt文件并将其发送到服务器。服务器将使用ca证书签署.crt文件并将该文件再次发回给我。收到签名的crt文件后,我需要使用资源文件夹中已有的ca证书进行验证..我可以使用以下代码用我的ca证书创建一个信任管理器:AssetManagerassetManager=getResources().getAssets();InputStreaminputStream=null;try{in

java - 如何在 Java 中将 key 归零?

下面的java代码是否足以清除内存中的key(将其所有字节值设置为0)?zerorize(SecretKeykey){byte[]rawKey=key.getEncoded();Arrays.fill(rawKey,(byte)0);}换句话说,getEncoded方法是否返回实际key的副本或引用?如果返回副本,那么作为安全措施,我该如何清除key? 最佳答案 在尝试清除key之前,您应该首先检查SecretKey接口(interface)的实现是否也实现了javax.security.auth.Destroyable接口(int

java - 如何在 Android 上安全地存储密码?

任务是将输入的密码(PasswordStr)或mKey.getEncodedbyte[]保存起来,之后自动发送给CryptoAPI(Cipher)SecretKeymKey=SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1").generateSecret(newPBEKeySpec(PasswordStr.toCharArray());显然这个密码也可以被加密,但是这将需要另一个密码等等直到无限。Android可能已经提供了一种存储密码的机制?p.s使用远程服务器是不可能的。需要存储在本地。 最佳答案

java - 升级到 1.45 时出现 BouncyCaSTLe AES 错误

最近从BC1.34升级到1.45。我正在使用以下内容解码一些先前编码的数据:SecretKeySpecskeySpec=newSecretKeySpec(raw,"AES");Ciphercipher=Cipher.getInstance("AES");cipher.init(Cipher.DECRYPT_MODE,skeySpec);byte[]decrypted=cipher.doFinal(encrypted);使用BC1.45时出现此异常:javax.crypto.BadPaddingException:padblockcorruptedatorg.bouncycastle.j

java - 如果针对 Android 3.0 及更高版本,使用 SpongyCaSTLe 比使用 BouncyCaSTLe 有优势吗?

如果我理解正确的话,SpongyCaSTLe是BouncyCaSTLe的重命名,它的创建是为了让人们能够在Android上包含新版本的BouncyCaSTLe,因为只包含最新的BouncyCaSTLejar会导致与旧的和剥离的冲突Android附带的BouncyCaSTLe的下版本。但是,显然自3.0版(2011年-6年前!)起,AndroidBouncyCaSTLe包已重命名为com.android.org.bouncycaSTLe,因此现在如果您包含常规org.bouncycaSTLe,这将不再与预打包的精简BouncyCaSTLe冲突,您可以那样使用最新版本。让我感到困惑的是,S