用Java解密ASP中的字符串解密

问题描述 投票:0回答:1

我有以下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"));
java encryption vbscript asp-classic
1个回答
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);

Pre-Java8示例(使用Base64类Commons Codec):

byte[] decodedBytes = Base64.decodeBase64(encodedBytes);

(在Java中你有很多选择(不仅仅是这些),如果你至少使用Java8,那里有一个内置的class,对于以前的版本,我通常使用the Base64 class in Apache Commons Codec

© www.soinside.com 2019 - 2024. All rights reserved.