草庐IT

Encryption

全部标签

java - Android加密 "pad block corrupted"异常

在这段代码中,这一行导致异常:clearText=c.doFinal(Base64.decode(encryptedText,Base64.DEFAULT));javax.crypto.BadPaddingException:填充block已损坏我的代码来自:http://www.techrepublic.com/blog/software-engineer/attention-android-developers-keep-user-data-safe/有什么想法吗?privateStringdecrypt(StringencryptedText){byte[]clearText=n

android - 问题外包RSA加解密

我对RSA加密和解密有疑问。我在android中开发,想外包RSA加密和解密。在我尝试外包之前,我的源代码运行良好。我创建了私钥和公钥,分别保存为private.key和public.key。该错误是由该方法引起的ClassNotFoundException:publicKeygetPrivateKey(){try{InputStreamfis=activity.getResources().openRawResource(R.raw.private);ObjectInputStreamois=newObjectInputStream(fis);KeyRSAprivateKey=(Ke

java - 加密难题

我正在构建一个可以从服务器发送和接收数据的应用程序。很简单。在断开连接的情况下,我也开始编写存储数据的功能,直到获得连接。此数据将本地存储在SQLite数据库中。数据(不是表)正在加密,我会在服务器端存储个人用户salt/IV。这就是我的问题的症结所在。如果用户没有连接,那么他/她就无法连接到我的服务器来检索他们的salt/IV,如果我将他们的个人key存储在设备上的某个地方,那么任何人都可以轻松查看!是否有我可以采用的通用做法来确保数据安全?我很难相信没有互联网连接就无法安全地存储数据,但话又说回来,我对整个服务器通信业务还比较陌生。 最佳答案

android - 错误填充异常 : Blocktype mismatch: 0

所以我有一个android到PC的通信(android=客户端,PC=服务器)当客户端尝试连接到服务器时,服务器将抛出此消息:javax.crypto.BadPaddingException:Blocktypemismatch:0atsun.security.rsa.RSAPadding.unpadV15(UnknownSource)atsun.security.rsa.RSAPadding.unpad(UnknownSource)atcom.sun.crypto.provider.RSACipher.doFinal(RSACipher.java:356)atcom.sun.crypt

android - 公钥/私钥加密 Android-PHP

我正在尝试在android端加密数据并在php端解密我在php中使用phpseclib生成公钥/私钥在我生成key后,我在PHP端获得了这个公钥:-----BEGINRSAPUBLICKEY-----"."MIGJAoGBAKks62Itns2uU/dVZJ4kCkMinHgyeh/rdMD53a4Zu2a76OIJvdSZ8q4c"."YTWvPj0giefVtMc7tV4c6AAw04jyIfmCTvcQUlHI+sspHxXDlQTagNoxCuA29b5L"."9MKO6Ok0LwF9rGgTywC1heNEulZz9ISn9FQDazJT+Bd9cnNOrJRdAgMBAAE

java - PHP和JAVA加解密例程

我有以下PHP例程来加密我与客户端的通信:publicstaticfunctionencrypt($input,$key){$size=mcrypt_get_block_size(MCRYPT_RIJNDAEL_128,MCRYPT_MODE_ECB);$input=AES::pkcs5_pad($input,$size);$td=mcrypt_module_open(MCRYPT_RIJNDAEL_128,'',MCRYPT_MODE_ECB,'');$iv=mcrypt_create_iv(mcrypt_enc_get_iv_size($td),MCRYPT_RAND);mcryp

java - 对 Android 加密的工作原理感到困惑

好的,我正在开发一个应用程序,我想在用户的SD卡上存储一个文件,但我想加密该文件。我研究了几个使用DES加密来加密文件和数据的站点,但我对某些事情感到困惑。我看到的所有示例都使用这样一行:SecretKeykey=KeyGenerator.getInstance("DES").generateKey();我遇到的问题是我得到了我的key来加密,显然我需要相同的key来解密。但这似乎是一个悖论,因为如果我将我的key存储在文件或数据库中,就不能有人获得key并解密我的文件吗?也许我遗漏了一些东西,但是有没有办法使用提供的密码短语生成key?如果有人必须将生成的key存储在其他地方,为什么

Android AES 加密在 Cipher.doFinal 之后丢失字节

我正在尝试加密来自glide的输入流。我将输入流转换为一个字节数组,并将其传递到我的加密方法中:funencrypt(input:ByteArray):ByteArray{Log.e("TAG","inputsize:${input.size}")valiv=ByteArray(KeyStoreHelper.IV_SIZE)valsecureRandom=SecureRandom()secureRandom.nextBytes(iv)valc=Cipher.getInstance(KeyStoreHelper.AES_MODE)c.init(Cipher.ENCRYPT_MODE,ge

java - 如果我在 Android 中使用 SSLSocket 并将密码硬编码到源代码中的信任库,那不安全吗?

我正在使用java的SSLSocket将android应用程序安全地连接到服务器。证书位于信任库中。但是信任库的密码似乎是连接所必需的,因此它目前被硬编码到设备中。我不太了解PKI,但这似乎并不安全。我将信任库与原始资源文件夹中的应用程序bundle在一起。是否有更好的方法来安全地允许应用程序使用TLS连接到服务器?我对TLS/SSL非常陌生,所以我将不胜感激任何帮助或建议。这是代码的客户端。store=KeyStore.getInstance("BKS");InputStreamin=appcontext.getResources().openRawResource(R.raw.tr

android - 无效 key 异常 : Key length not 128/192/256 bits

我正在尝试使用以下代码在Android中解密加密图像:publicclassSimpleCryptoActivityextendsActivity{privatestaticfinalintIO_BUFFER_SIZE=4*1024;@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);try{AssetManageram=this.getAssets();//gettheencryptedimagefr