[英]Encryption/Decryption in C# and Java
i want to decrypt my encrpyted String in Java on Android. 我想在Android上的Java中解密我的加密字符串。
With the following code i encrypted my raw String in C#: 使用以下代码,我在C#中加密了原始字符串:
public static string Encrypt(string decryptedString)
{
DESCryptoServiceProvider desProvider = new DESCryptoServiceProvider();
desProvider.Mode = CipherMode.ECB;
desProvider.Padding = PaddingMode.PKCS7;
desProvider.Key = Encoding.ASCII.GetBytes("password");
using (MemoryStream stream = new MemoryStream())
{
using (CryptoStream cs = new CryptoStream(stream, desProvider.CreateEncryptor(), CryptoStreamMode.Write))
{
byte[] data = Encoding.Default.GetBytes(decryptedString);
cs.Write(data, 0, data.Length);
cs.FlushFinalBlock();
return Convert.ToBase64String(stream.ToArray());
}
}
}
I tried to decrypt it in Java: 我试图用Java解密:
public String decrypt(){
String keyStr = "password";
String msg = "KGFL1GG5VLQ=";
String erg = "";
try{
KeySpec ks = new DESKeySpec(keyStr.getBytes("UTF-8"));
SecretKey key = SecretKeyFactory.getInstance("DES").generateSecret(ks);
IvParameterSpec iv = new IvParameterSpec(Hex.decodeHex("1234567890ABCDEF".toCharArray()));
Cipher cipher = Cipher.getInstance("DES/ECB/PKCS5Padding");
cipher.init(Cipher.DECRYPT_MODE, key, iv);
byte[] decoded = cipher.doFinal(Base64.decodeBase64(msg));
erg = new String(decoded);
} catch (Exception e){
erg = "error";
}
return erg;
}
I use the commons-codec-1.8.jar. 我使用commons-codec-1.8.jar。 It crashes with the following Error: 它崩溃并显示以下错误:
W/dalvikvm(17859): VFY: unable to resolve static method 339: Lorg/apache/commons/codec/binary/Base64;.decodeBase64 (Ljava/lang/String;)[B
Please point out where I'm going wrong. 请指出我要去哪里了。
I think this question is similar to: 我认为这个问题类似于:
NoSuchMethodError using commonc codec in Android application NoSuchMethodError在Android应用程序中使用Commonc编解码器
and 和
Apache Commons Codec with Android: could not find method 带有Android的Apache Commons Codec:找不到方法
Answer is, Android uses version 1.2 of the apache commons. 答案是,Android使用Apache Commons的1.2版。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.