草庐IT

Android加密/解密问题(AES)

我在这里需要一点帮助。所以基本上我必须在Android中测试图像的AES加密/解密。我是android编程的新手,这就是为什么我的一个friend给我一个例子来说明如何这样做,但问题是当我运行示例时,它会在20-30秒后崩溃,我不确定发生了什么。所以任何人都可以查看代码并告诉我问题出在哪里。示例代码需要这样做:加密和解密相同的图像并向我显示包含信息的日志,加密和解密图像需要多长时间。无论如何谢谢!代码:packagecom.cryptooo.lol;importjava.io.ByteArrayOutputStream;importjava.security.SecureRandom;

java - 将加密的 AES key 导入 Android Keystore 并将其存储在新别名下

我只是在熟悉AndroidKeystoreAPI。我发现可以使用以下功能:AtleastonsomedevicestheAndroidKeystoreishardwarebacked,meaningthatcryptooperationsruninasecureenvironment(TEE).Whenthekeystoreishardwarebacked,privateRSAkeysaswellassecretsymmetrickeysthathavebeencreatedwithintheKeystorecanbeconfiguredtoneverleavetheKeystorea

android - 在 Android 上向 AES-GCM 添加额外的经过身份验证的数据

我正在尝试将额外的身份验证数据(AAD)添加到Android上的AES-GCM。我看到Ciphernotes的Java7版本关于使用GCMParameterSpec和updateAAD(...)方法,但鉴于Android是基于Java6的,我完全没有想法。我使用SpongycaSTLe作为加密库GCMParameterSpecs=newGCMParameterSpec(...);cipher.init(...,s);cipher.updateAAD(...);//AAD 最佳答案 谢谢@andrey-我在BCmailinglist中

java - java中是否有以下Aes加密函数的Dart等价物

我已经设置了一个服务器,它通过下面提到的java函数监听加密的字节数组。早些时候我使用java(android)来构建我的应用程序,因此使用相同的java函数很容易,但我无法弄清楚该函数的dart等效(flutter)是什么,它将字符串作为输入并返回AES加密字节数组作为输出,我可以将其写入tcp套接字。我也非常感谢帮助我了解如何将生成的字节数组写入服务器,然后读取类似的响应并通过dart(flutter)解密它我已经成功地编写了简单的字符串并通过dart接收简单的字符串作为输入和输出到tcp服务器,但不能对加密的字节数组做同样的事情。在java中,我使用DataOutputStrea

java - java中是否有以下Aes加密函数的Dart等价物

我已经设置了一个服务器,它通过下面提到的java函数监听加密的字节数组。早些时候我使用java(android)来构建我的应用程序,因此使用相同的java函数很容易,但我无法弄清楚该函数的dart等效(flutter)是什么,它将字符串作为输入并返回AES加密字节数组作为输出,我可以将其写入tcp套接字。我也非常感谢帮助我了解如何将生成的字节数组写入服务器,然后读取类似的响应并通过dart(flutter)解密它我已经成功地编写了简单的字符串并通过dart接收简单的字符串作为输入和输出到tcp服务器,但不能对加密的字节数组做同样的事情。在java中,我使用DataOutputStrea

java - 在android中使用AES CTR模式随机访问InputStream

我无法找到用于随机访问的AESCTR加密的任何工作示例。有人可以指导我如何在CTRMODE中使用计数器以及如何实现跳转到流中的特定位置吗?默认流实现(CipherInputStream)不会跳过流,它会破坏纯文本。我正在尝试解密存储在AndroidSD卡上的加密视频文件。嵌入式HTTP文件服务器即时对其进行解密。一切正常,直到用户在视频中执行搜索:视频立即停止,因为它收到损坏的视频流。我正在使用以下代码来初始化和加密/解密流(为了简单起见,我对key进行了硬编码。它不会在生产中进行硬编码)ByteBufferbb=ByteBuffer.allocate(16);bb.put("1234

java - 'BadPaddingException : pad block corrupted' while decrypting using AES/ECB

在Android/java应用中,byte[]data=":ʺ$jhk¨ë‹òºÃ";//fetchedfromphpserver..Ciphercipher=Cipher.getInstance("AES");cipher.init(Cipher.DECRYPT_MODE,mKeyspec);returnnewString(cipher.doFinal(data));上面的代码总是抛出BadPaddingException:padblockcorrupted用于后续的16字节加密数据data=":ʺ$jhk¨ë‹òºÃ"(thedatais16chars)key长度为16个字节。

java - AES 加密 Java -> PHP -> Java

在我的Android应用程序中,我正在与网络服务通信,发送和响应的数据使用AES加密进行加密。所以我做的是以下内容。我正在将base64编码的AES加密JSON字符串发送到share.php然后Share.php将解密该字符串并将其插入数据库。之后,PHP将对响应进行加密和编码。然后我的Android应用程序需要解码和解密这条消息。但是PHP响应的解密不是很顺利。这是我的AES.java:publicclassAES{privatefinalStringcharacterEncoding="UTF-8";privatefinalStringcipherTransformation="A

java - 如何在 Java(Android) 中生成与 .Net 中相同的 AES key ?

我需要根据.NetWebService提供的盐和密码在Java(Android)中生成AESkey。我需要使用与.net中生成的key相同的key,并使用相同的密码和盐(使用Rfc2898DeriveBytes和AesManaged())。这是我在Android中的代码:char[]passwordAsCharArray=password.toCharArray();PBEKeySpecpbeKeySpec=newPBEKeySpec(passwordAsCharArray,salt,1000,256);SecretKeyFactoryfactory=SecretKeyFactory.

Android AES/GCM/NoPadding 特定长度输入字节的错误?

我写了一个类,用于对任意数据进行解密和加密。它是这样工作的:因为AndroidKeyStore生成的AESkey在卸载应用程序后“丢失”,我们有一个公钥/私钥对,其中公钥包含在应用程序中。出于失败保存的目的,它用于加密AESkey,该key沿着IV填充在每个加密消息的前面。这样我们就可以用我们的私钥恢复AESkey在单元测试中,我发现它适用于大多数输入。奇怪的是,在某些字节数组长度上它失败了(我发现即81920、131073。)这是AESCrypto代码:packagecom.mycompany.appname.crypto;importandroid.content.Context;