【java – 如何在android中安全地存储加密密钥?】教程文章相关的互联网学习教程文章

Android支持哪些加密算法?【代码】

我一直在谷歌搜索几个小时,找不到任何可靠的答案,但很多传闻. 有谁知道文档的位置定义了Android OS支持的加密/签名/哈希算法. 我从论坛上听到并非所有手机都支持相同的算法,所以我正在寻找每个Android手机支持的常见算法.解决方法:试试这个列出所有安全提供程序:Provider[] providers = Security.getProviders(); for (Provider provider : providers) {Log.i("CRYPTO","provider: "+provider.getName());Set<Provider.Service> s...

java – 使用AES的Android加密/解密【代码】

在Android上如何使用AES加密和解密图像和其他文件有一个很好的例子吗?解决方法:警告:此答案包含您不应使用的代码,因为它不安全(使用SHA1PRNG进行密钥派生并在ECB模式下使用AES) 相反,在CBC或GCM模式下使用PBKDF2WithHmacSHA1进行密钥派生和AES(GCM提供隐私和完整性) 您可以使用以下函数:private static byte[] encrypt(byte[] raw, byte[] clear) throws Exception {SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");Ci...

JAVA 和ANDROID AES加密

最近项目 服务端使用的是PHP的openssl的AES加密,Android使用openssl要用到JNI, 比较麻烦。 其实java也有自己AES加密, 效果跟openssl的AES加密一样的 。 需要的第三方jar包 bcprov java:package com.qiang.kotlin;import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; import java.security.AlgorithmParameters; import java.security.Key; import java.security.S...

由EAR监管加密的Android应用程序

我正在开发和Android应用程序.作为完全次要的功能,它将允许用户加密一些字符串. 我知道比DES(56位)更推荐使用AES(256位).但是,如果我使用AES-256并在Android Market中发布我的应用程序,我的应用程序是否会受到出口管理条例(EAR)的监管? http://www.bis.doc.gov/encryption/ 我已经读过它调节用超过56位的密钥加密的软件. 我的应用程序不会真正管理绝密信息.它将允许用户发送彼此加密的消息.它几乎只是作为一种游戏,尽管有些用户可...

java – Android上的Bouncycastle椭圆曲线加密【代码】

我正在尝试使用Bouncycastle在Android设备上解密X509证书.但是,我一直在努力java.lang.RuntimeException: algorithm identifier 1.2.840.10045.2.1 in key not recognised.但是,当我在自己的计算机上运行完全相同的代码时,它的工作完全正常. Android是否用一个过时的版本覆盖了一些bouncycastle库?解决方法:我认为Android还没有完整的ECC功能. bouncycastle android使用了很多东西.不过,我会看看spongycastle,它试图实现Android的...

android -------- DES加密解密算法【代码】【图】

DES全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法,1977年被美国联邦政府的国家标准局确定为联邦资料处理标准(FIPS),并授权在非密级政府通信中使用,随后该算法在国际上广泛流传开来。需要注意的是,在某些文献中,作为算法的DES称为数据加密算法(Data Encryption Algorithm,DEA),已与作为标准的DES区分开来。 DES加密介绍DES是一种对称加密算法,所谓对称加密算法即:加密和解密使用相同密...

java – iPhone和Android的加密方法

我曾尝试使用AES算法生成加密文本在(Android和IPhone)平台上,但问题是我们使用相同的加密解密库(AES-128)并使用相同的固定变量(密钥,IV,模式)但我得到两个不同的结果. 我感谢任何帮助.

java – AES加密Android < - > iOS不同的结果,消息长度> 15字节【代码】

我在理解两个设备上的密码/加密器时遇到了一个真正的问题. 1.如果我们使用Cipher AES加密iOS和Android上的消息并且字符串的charlength不大于16(例如“abcdefghijklmno”),我们在使用相同的密钥/密码加密后得到相同的结果. 2.但是如果需要更长的消息,我们会在iOS和Android上获得不同的结果(例如“abcdefghijklmnop”) 我做了很多研究如何为这两种设备获得相同的参数,起初我认为它是安全的. 这是我用于加密的密码:public String enc...

安全“加密”提供程序在Android N中已弃用【代码】

用户在Android N中运行我的应用程序,他遇到了崩溃.我知道Google在Android N中弃用了Crypto提供程序,但是迁移旧加密数据的最佳方法是什么.解决方法:对于8.0及以上,您可以参考 here 对于低于8.0的版本,您可以查看以下代码. 您可以使用此提供程序替换SecureRandom的“加密”,它对我很有用: 使用,SecureRandom sr = SecureRandom.getInstance("SHA1PRNG", new CryptoProvider());代替,SecureRandom sr = SecureRandom.getInstance("SH...

RSA加密Android和Java环境之间的差异【代码】

首先,为我即将发布的代码量道歉.我正在尝试使用我的Java应用程序中的RSA公钥来加密Android应用程序中的消息,然后将密文发送回Java环境进行解密,但在尝试解密时,我总是收到此错误:javax.crypto.BadPaddingException: Decryption errorat sun.security.rsa.RSAPadding.unpadV15(RSAPadding.java:380)at sun.security.rsa.RSAPadding.unpad(RSAPadding.java:291)at com.sun.crypto.provider.RSACipher.doFinal(RSACipher.java:356)at...

公钥/私钥加密Android-PHP【代码】

我正在尝试加密android端的数据并在php端解密它我在php中使用phpseclib来生成公钥/私钥 在我生成密钥之后,我在PHP端获得了这个公钥:-----BEGIN RSA PUBLIC KEY-----"."MIGJAoGBAKks62Itns2uU/dVZJ4kCkMinHgyeh/rdMD53a4Zu2a76OIJvdSZ8q4c"."YTWvPj0giefVtMc7tV4c6AAw04jyIfmCTvcQUlHI+sspHxXDlQTagNoxCuA29b5L"."9MKO6Ok0LwF9rGgTywC1heNEulZz9ISn9FQDazJT+Bd9cnNOrJRdAgMBAAE="."-----END RSA PUBLIC KEY-----然后我将其编码为ba...

java – 加密和解密Android内部文件的任何优化方式【代码】

这是当前用于加密和解密过程的代码,它的工作方式也是如此,除了加密和解密的时间很长.import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import javax.crypto.Cipher; import javax.crypto.CipherInputStream; import javax.crypto.CipherOutputStream; import javax.crypto.SecretKey; import javax.crypto.SecretKeyFact...

android – 在哪里存储加密算法的密钥?

我需要开发一个Android应用程序,在客户端进行加密/解密.传输和存储在服务器中的数据必须加密.问题是我无法在任何地方存储加密/解密密钥. 密钥无法存储在客户端计算机上.因为管理员(或可以访问服务器的人)不应该访问未加密的数据. 那么如何生成密钥呢?你能建议一些方法吗?解决方法:我假设当你说加密密钥不应存储在设备中时,你的意思是:-)因为如果没有那个限制,你可以使用KeyStore.但是,这意味着密钥存储在设备,似乎不是你想要的. ...

在android(客户端)加密密码,用rsa在服务器端PHP解密【代码】

我用rsa在android(客户端)加密了我的密码.我们知道它使用公钥加密和私钥解密.我生成公钥和私钥,如下面的代码KeyPairGenerator gen = KeyPairGenerator.getInstance(RSA);gen.initialize(1024, new SecureRandom());KeyPair keyPair = gen.generateKeyPair();uk = keyPair.getPublic();rk = keyPair.getPrivate();我成功用这个密钥在android中加密和解密.但是在服务器端,处理解密的人需要我的私钥作为生成的结果.我如何将私钥交给处...

java – 使用具有给定模数和指数的RSA算法在Android中加密【代码】

我之前在C#中使用过RSACryptoServiceProvider来加密某些数据,现在我必须在Android程序中复制这种加密.我希望我的Android程序生成与我在C#程序中获得的结果相同的结果. 公钥:<RSAKeyValue><Modulus>zz4qdc39y1BHyJgVXUkINJSbsUd1ZJPISyE9nNGjqgR+ZO1a4cE3ViVCSZCw+6dBdVMFNjzZPBxl0mT57GIq7rcuoT0scesZgxOftbMasPbxp0BGrh3HTpbBMJdCopgcYV98CZERakb8Pgbb0ne/DiW9Aq0kfTBE02/iEHRNuqMNfo1GFo55m0OKbxVoM6UBb8AITQ6lbdvfCgeIvMzRlVrH...