问题标签 [jncryptor]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1887 浏览

java - 如何使用 JNCryptor 加密 InputStream

我正在开发一个 iPad 应用程序并使用 RNCryptor 在设备上进行加密和解密。这种加密格式的 Java 版本以JNCryptor的形式提供。

我现在有要从 InputStream 读取的数据,但我想在读取数据之前对其进行加密。我找到了一个名为CipherInputStream的类,它似乎完全符合我的要求。唯一的问题是,我需要一个Cipher(和Provider)来指定加密方法,我不知道该怎么做。甚至可以定义自定义提供程序吗?

有人对使用 JNCryptor 加密 InputStream 的替代方法有建议吗?

0 投票
1 回答
2884 浏览

java - Android 加密不起作用(使用 AES/CBC/PKCS7Padding 的 PBKDF2WithHmacSHA256 加密)

我正在尝试在android JNCryptor的帮助下使用 Cipher Algorithm "AES/CBC/PKCS7Padding"、 HMAC algorithm"HmacSHA256"和 key derivation algorithm编写加密代码。但它显示:"PBKDF2WithHmacSHA256"

CryptorException: Failed to generate key from password using PBKDF2WithHmacSHA256

NoSuchAlgorithmException: SecretKeyFactory PBKDF2WithHmacSHA256 implementation not found

任何帮助将不胜感激。

0 投票
1 回答
654 浏览

java - 将 byte[] 转换为 String Java Android 加密

我正在使用 JNCryptor 库对字符串进行加密,然后将其作为加密字符串发送到我的服务器。这是我的代码:

但是,当我将字符串“a”发送到服务器时,它有一堆无法识别的字符。我阅读了有关此的解释

字符串不是二进制数据的合适容器,密文是二进制数据。对于任何给定的字符编码,并非所有字节和字节序列都表示字符,当发现不可表示的字节或序列时,它会转换为某个错误字符。显然这个错误字符不能被转换回一个唯一的字节或字节序列(它是一个多->一个映射)。

这个建议正确吗?在这种情况下,如何正确地将 byte[] 转换为字符串?这样我就可以将它以可读的方式存储在我的服务器上?

0 投票
0 回答
954 浏览

android - PKCS5Padding 与 PKCS7Padding 兼容性 Android iOS

我正在创建应用程序的 Android 和 iOS 版本,并且有一段需要加密的数据。我分别为 Android 和 iOS 使用 JNCryptor/RNCryptor 库,因为它们声称是兼容的。

但是,当我使用 Android 加密时,我的加密密钥长度为 114 个字符,而使用 iOS 加密的密钥长度为 112 个字符。我注意到两个库源代码之间的唯一区别是 Android 使用 PKCS5Padding 而 iOS 使用 PKCS7Padding。考虑到这两个库显然应该是兼容的,这是否重要?如果是这样,我该如何改变它以使两个加密的字符串长度相等?

编辑:安卓代码:

iOS 代码:

或者你的意思是比较这两个库?这些可以在这里找到: https ://github.com/RNCryptor/JNCryptor

0 投票
2 回答
2596 浏览

android - 在安卓上使用 RNCryptor

我有一些用 RNCryptor 加密的图像文件,我想解密它们并将它们用作 Framelayout 的背景。我浏览了示例文件,但我的应用程序强制在一段时间后关闭并且没有显示任何图像。我使用 JNCryptor 库

我将加密图像放在原始文件夹中,如下所示:

这是我的项目文件夹

这是我活动中的代码:

该文件在 iOS 上运行良好,代码如下:

这是 logcat 输出:

08-28 19:52:11.720: E/AndroidRuntime(1063): 致命异常: main 08-28 19:52:11.720: E/AndroidRuntime(1063): java.lang.RuntimeException: 无法启动活动 ComponentInfo{net. appersian.android.wod/net.appersian.android.wod.MainActivity}:java.lang.NullPointerException 08-28 19:52:11.720:E/AndroidRuntime(1063):在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java :2059) 08-28 19:52:11.720: E/AndroidRuntime(1063): 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084) 08-28 19:52:11.720: E/AndroidRuntime(1063):在 android.app.ActivityThread.access$600(ActivityThread.java:130) 08-28 19:52:11.720: E/AndroidRuntime(1063): 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195) 08 -28 19:52:11.720:E/AndroidRuntime(1063):在 android.os.Handler。dispatchMessage(Handler.java:99) 08-28 19:52:11.720: E/AndroidRuntime(1063): at android.os.Looper.loop(Looper.java:137) 08-28 19:52:11.720: E/ AndroidRuntime(1063): 在 android.app.ActivityThread.main(ActivityThread.java:4745) 08-28 19:52:11.720: E/AndroidRuntime(1063): 在 java.lang.reflect.Method.invokeNative(Native Method) 08-28 19:52:11.720: E/AndroidRuntime(1063): 在 java.lang.reflect.Method.invoke(Method.java:511) 08-28 19:52:11.720: E/AndroidRuntime(1063): 在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 08-28 19:52:11.720: E/AndroidRuntime(1063): at com.android.internal.os.ZygoteInit.main(ZygoteInit .java:553) 08-28 19:52:11.720: E/AndroidRuntime(1063): at dalvik.system.NativeStart.main(Native Method) 08-28 19:52:11.720: E/AndroidRuntime(1063): Caused作者:java.lang。NullPointerException 08-28 19:52:11.720: E/AndroidRuntime(1063): at net.appersian.android.wod.MainActivity.onCreate(MainActivity.java:54) 08-28 19:52:11.720: E/AndroidRuntime(1063 ): 在 android.app.Activity.performCreate(Activity.java:5008) 08-28 19:52:11.720: E/AndroidRuntime(1063): 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079) 08- 28 19:52:11.720: E/AndroidRuntime(1063): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023) 08-28 19:52:11.720: E/AndroidRuntime(1063): ... 还有 11 个E/AndroidRuntime(1063): 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079) 08-28 19:52:11.720: E/AndroidRuntime(1063): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java :2023) 08-28 19:52:11.720: E/AndroidRuntime(1063): ... 11 更多E/AndroidRuntime(1063): 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079) 08-28 19:52:11.720: E/AndroidRuntime(1063): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java :2023) 08-28 19:52:11.720: E/AndroidRuntime(1063): ... 11 更多

我在解密文件时做错了什么?

更新:我将 e.printStackTrace() 添加到 try/catch,这是我的新 logcat:

08-28 20:54:10.496: W/System.err(1487): org.cryptonode.jncryptor.InvalidHMACException: 不正确的 HMAC 值。08-28 20:54:10.496: W/System.err(1487): 在 org.cryptonode.jncryptor.AES256JNCryptor.decryptV3Data(AES256JNCryptor.java:244) 08-28 20:54:10.496: W/System.err( 1487): 在 org.cryptonode.jncryptor.AES256JNCryptor.decryptV3Data(AES256JNCryptor.java:319) 08-28 20:54:10.496: W/System.err(1487): 在 org.cryptonode.jncryptor.AES256JNCryptor.decryptData(AES256JNCryptor .java:276) 08-28 20:54:10.496: W/System.err(1487): 在 net.appersian.android.wod.MainActivity.onCreate(MainActivity.java:50) 08-28 20:54:10.496 : W/System.err(1487): 在 android.app.Activity.performCreate(Activity.java:5008) 08-28 20:54:10.496: W/System.err(1487): 在 android.app.Instrumentation。 callActivityOnCreate(Instrumentation.java:1079) 08-28 20:54:

0 投票
1 回答
1200 浏览

android - RNCryptor/JNCryptor - 解密 ios 中在 android 中加密的字符串

帮助所有,

我在 iOS 和 android 中使用了 RNCryptor/JNCryptor,下面是在 Android 中加密和在 iOS 中解密的代码。

在 Android 中加密代码

在 iOS 中解密代码

我也试过用密码简单解密

获取未知标头的错误,错误代码=2

我在两边都使用相同的刺“密码”作为密码。

如果有人有任何想法,请让我知道我是否遗漏了什么。

0 投票
0 回答
318 浏览

java - 解密AES256加密文件并保存在手机中

我正在下载一个存储在远程服务器上的文件,我尝试使用JNCryptor对其进行解密,一切顺利,除了我下载并存储在手机外部存储中的文件已损坏并且我无法打开它。谁能告诉我我哪里出错了?

我试图从文件中获取 InputStream,对其进行解密,然后将文件保存在外部存储中。

谢谢

这是我的代码:

PS 我在 logCat 中没有收到任何错误或警告。

0 投票
2 回答
1216 浏览

java - 为什么 JNCryptor/RNCryptor 库会抛出 InvalidHMACException?

我想使用 AES256 对称加密我的 iPhone 应用程序和我的 Java 服务器套接字。我目前正在使用 Rob Napier 的 RNCryptor/JNCryptor 库。iPhone 上的加密似乎运行良好,因为我能够再次解密加密的字符串。但是,一旦我尝试解密 Java 服务器套接字上的字符串,就会引发以下异常:

以下是用于发送加密数据的相关客户端代码片段(iOS/Objective-C):

这是在其套接字(Linux/Java)上接收加密数据的相应服务器代码:

有人知道我做错了什么吗?在发送数据之前,我是否必须使用 Base64 或类似的编码?任何帮助高度赞赏。

编辑:这是解决方案。我现在不使用基于字符的输入流,而是直接使用套接字中的 InputStream 来读取原始字节以提供解密算法:

0 投票
1 回答
461 浏览

php - Android 上的 JNCryptor 到 RNCryptor-php

我的 android 应用程序中有一个文件要上传到服务器。我正在使用 JNCryptor 进行 AES 256 加密。我的服务器上有 RNCryptor-php 库,我正在尝试解密文件,但没有正确解密。这是我的代码:

安卓:

PHP

任何帮助将非常感激!谢谢!

0 投票
1 回答
96 浏览

java - JNCryptor 不工作,无法解析符号 AES256JNCryptor

我正在使用 JNCryptor 库,但出现错误“无法解析符号 AES256JNCryptor” 红色字体

我的安卓工作室版本 2.1.2

你能告诉我哪里错了吗?

谢谢