我有下面的ASP代码可以在asp中进行加密和解密。工作正常。我希望在asp中对字符串进行加密,然后在java中对其进行解密。
set obj=Server.CreateObject("System.Security.Cryptography.RijndaelManaged")
Set endocde = Server.CreateObject("System.Text.endocdeEncoding")
un = endocde.GetBytes_4("Test Encryption")
obj.key = endocde.GetBytes_4("SomeRandomKey")
obj.iv = endocde.GetBytes_4("SomeRandomIv")
set enc=obj.CreateEncryptor()
uncUn=enc.TransformFinalBlock((un),0,lenb(un))
eUn=endocde.GetString((uncUn))
set dec=obj.CreateDecryptor()
byted=dec.TransformFinalBlock((uncUn),0,lenb(uncUn))
sd=endocde.GetString((byted))
我尝试使用Java中的以下代码解密加密的字符串,但不起作用。我尝试在UTF8 / Base64中发送加密的数据,但是不起作用。请帮忙。
String iv = "sameIVasASP";
String key = "sameKeyasASP";
IvParameterSpec iv = new IvParameterSpec(iv.getBytes("UTF-8"));
SecretKeySpec skeySpec = new SecretKeySpec(key.getBytes("UTF-8"), "Rijndael");
Cipher cipher = Cipher.getInstance("Rijndael/CBC/PKCS5PADDING");
cipher.init(Cipher.DECRYPT_MODE, skeySpec, iv);
byte[] decode = Base64.getDecoder().decode(<encrpted string>);
System.out.println( new String(cipher.doFinal(decode)).getBytes("UTF-8"));
答案 0 :(得分:0)
如何在c#中将UTF-8字符串编码/解码为base64:
byte[] bytes = Encoding.UTF8.GetBytes("string-to-encode");
string base64 = Convert.ToBase64String(bytes);
如何在Java中将UTF-8字符串编码/解码为base64
Java8版本:
byte[] decodedBytes = Base64.getDecoder().decode(base64encodedstring);
Java8之前的示例(具有Commons Codec的Base64类):
byte[] decodedBytes = Base64.decodeBase64(encodedBytes);
(在Java中,您可以有很多选择(不仅仅是这些),如果您至少使用Java8,则内置class,对于以前的版本,我通常使用{{3} })