草庐IT

Cryptography

全部标签

java - 使用 Android 实现 Bouncy CaSTLe 密码算法

如何使用BouncyCaSTLe提供程序来实现Serpent和Twofish等算法,因为Sun的提供程序根本不实现这些。我知道当多个供应商可以实现相同的算法时,您会从排名最高的供应商那里获得实现,这将是Sun供应商。如果出于某种原因你想使用来自特定提供者的实现(可能是因为你知道它更快),你可以在getInstance()的双参数版本中指定提供者。就我而言,Sun供应商根本没有实现我感兴趣的算法。我试图实现Serpent:publicstaticfinalStringFILE_EXTENSION=".serpent";publicstaticfinalStringPROVIDER="BC

java - 在模数 RSA key 中获得额外的 1 个字节,有时也用于指数

这是我的代码fragment:inteValue=79,t;intbitLength=1024;//KeySizeBigIntegere=newBigInteger(Integer.toString(eValue));KeyPairGeneratorkpg=KeyPairGenerator.getInstance("RSA");kpg.initialize(bitLength);KeyPairkp=kpg.generateKeyPair();KeyFactorykfactory=KeyFactory.getInstance("RSA");RSAPublicKeySpeckspec=(R

Java解密加密兼容SJCL?

我需要使用Java(在Android上)和SJCL来加密和解密数据(我似乎可以切换到另一个JS加密库,但我熟悉SJCL,所以如果可能的话我宁愿坚持使用它)。我的SJCL端工作正常,但在Java端我不确定我需要使用哪些参数来设置key生成器和密码。到目前为止,我用于解密的代码是:SecretKeyFactoryfactory=SecretKeyFactory.getInstance("PBKDF2WithHmacSHA256");KeySpecspec=newPBEKeySpec(password.toCharArray(),salt,1024,256);SecretKeytmp=fac

java - 如何解密在 Laravel 中使用 Crypt 加密的 Java (Android) 文本?

我需要解密从服务器接收到的一些数据,制作API的程序员将我指向这个Encrypter类,看看他用什么来加密。现在根据那个类,我发现使用的算法是AES128CBC,而且我收到的字符串是Base64编码的并且包含其他数据,而不仅仅是密文。也就是说,如果我收到以下字符串:eyJpdiI6InJsSzRlU3pDZTBBUVNwMzdXMjVcL0tBPT0iLCJ2YWx1ZSI6Ik5JOENsSVVWaWk2RGNhNlwvWjJNeG94UzVkclwvMGJOREQreWUyS1UzclRMND0iLCJtYWMiOiJhZTZkYjNkNGM2ZTliNmU0ZTc0MTRiNDB

android - 卸载应用程序时 KeyStore 条目是否丢失?

我在Androidkeystore中生成一个非对称key对,如下所示:我已将公钥用于对称key包装并将包装后的key存储到文件中。当我尝试使用私钥解包对称key时,我能够在该实例中这样做。重新安装我的应用程序后,我无法使用别名获取keystore条目。KeyPairGeneratorkpg=KeyPairGenerator.getInstance(KeyProperties.KEY_ALGORITHM_RSA,"AndroidKeyStore");kpg.initialize(newKeyGenParameterSpec.Builder(Constants.KEY_STORE_ALIA

android - PBKDF2WithHmacSHA1 key 生成在 Android 上花费的时间太长

我想使用PBKDF2WithHmacSHA1生成key,但在android上计算时间太长。我在iOS上使用相同数量的迭代和普通加密,大约需要6秒,而在Android上需要100秒。代码如下:publicstaticStringgenerateStorngPasswordHash(Stringpassword){try{char[]chars=password.toCharArray();byte[]salt=getSalt();PBEKeySpecspec=newPBEKeySpec(chars,salt,1010101,32*8);SecretKeyFactoryskf=Secret

android - 了解谷歌开发者控制台

我对开发者控制台的功能有点困惑。我有一个项目,我在其中访问youtube数据apiv3。我已经创建了我的项目并获得了4个键:浏览器key服务器keyWeb客户端OAuth2.0客户端IDkey安卓key其中,前三个是由谷歌服务自动生成的。我通过提供项目的SHA-1指纹生成了androidkey。我有以下问题,但我似乎没有得到回答:为什么我会自动生成前三个?我不在后端工作,所以只是出于好奇,如果客户端使用服务器key而不是浏览器key怎么办?有什么区别吗?我想SHA-1的作用类似于公钥加密。它是否仅取决于包和开发环境?我没有为此使用keytool,而是直接使用Studio中的Signin

android - 使用 REST 的用户身份验证

如果我的问题似乎是重复的,我深表歉意,但我还没有找到答案。我正在使用Spring3.0构建一个基于REST的应用程序,并计划最终部署到GoogleAppEngine。现在我的客户端可以是原生Android、iPhone或基于Web的客户端。我的用户需要使用存储在持久层内服务器中的用户名和密码登录。现在说我的Android客户端打开应用程序并显示登录屏幕是用户。现在用户输入用户名和密码。我知道这会是一个帖子,说我的服务端点是注册。所以它会像邮寄/注册现在我打算将用户名和密码以Json或XML格式放在消息正文中。我的问题是“这是正确的方法吗?”我打算将其设为SSL,但我应该如何在body中

java - 为什么 AES java 解密返回额外的字符?

请原谅我的英语不好。我使用mcrypt,我从这里MCryptforphpandjava得到它。在我的android应用程序中,我需要php和java安全通信,所以我得到上面提到的AES。问题是当php发送加密数据时,java可以解密它但包含一些额外的字符。Java代码importjava.security.NoSuchAlgorithmException;importjavax.crypto.Cipher;importjavax.crypto.NoSuchPaddingException;importjavax.crypto.spec.IvParameterSpec;importjav

android - 无效 key 异常 : Keystore operation failed on RSA decrypt on Android device

我正在尝试对AndroidKeyStore中的key执行RSA加密和解密。加密成功完成,但当我尝试解密时,它抛出一个InvalidKeyException:KeystoreoperationfailedonCipher.init()。这是我的key生成代码:KeyPairGeneratorkpGenerator=KeyPairGenerator.getInstance("RSA","AndroidKeyStore");AlgorithmParameterSpecspec=null;spec=newKeyGenParameterSpec.Builder(mAlias,KeyPropert