我一直致力于使用AES加密的应用程序,这需要使用JAR进行Base 64编码和解码。
我在导入JAR时遵循了本教程this(可能是我的问题,因为他们似乎不知道他们在做什么)。逐行编译很高兴,但在手机运行时我收到错误消息
Could not find method org.apache.commons.codec.binary.Base64.decodeBase64, referenced from method com.login.tools.Encoder.decrypt
我的应用程序gradle脚本确实引用了JAR
compile project(':commons-codec-1.10')
应该调用commons-codec-1.10 gradle脚本
configurations.create("default")
artifacts.add("default", file('commons-codec-1.10.jar'))
调用类本身看起来有点像
import org.apache.commons.codec.binary.Base64;
.
.
.
public static String decrypt(String strToDecrypt)
setDecryptedString(new String(cipher.doFinal(Base64.decodeBase64(strToDecrypt))));
答案 0 :(得分:5)
使用Gradle依赖项,而不是.jar
:
dependencies {
compile 'commons-codec:commons-codec:1.10'
}
请参阅:http://mvnrepository.com/artifact/commons-codec/commons-codec/1.10
另外,我发现您正在尝试使用org.apache.commons.codec.binary.Base64.decodeBase6
。 Android拥有自己的Base64库:
http://developer.android.com/reference/android/util/Base64.html
答案 1 :(得分:0)
我遇到了同样的问题。但这个解决方案适合我。希望对你有帮助。
如果要解密字符串,请使用下面的代码。您也可以使用
android.util.Base64
而不是
org.apache.commons.codec.binary.Base64
String key = "Dhruv349emaeGtuL";
String data = "example";
Log.e("Decrypt_Key", Security.decrypt(Security.encrypt(data, key), key));
Log.e("Encrypted Data", Security.encrypt(data, key));
使用这些加密&直接将方法解密到你的班级。
$sql = "INSERT INTO
topics(topic_subject,
topic_date,
topic_cat,
topic_by)
VALUES('" . mysql_real_escape_string($_POST['topic_subject']) . "',
NOW(),
'" . mysql_real_escape_string($_POST['topic_cat']) . "',
'" . $_SESSION['userid'] . "'
)";