Зашифровать строку в ASP расшифровать в Java - PullRequest
0 голосов
/ 02 сентября 2018

У меня ниже 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"));

1 Ответ

0 голосов
/ 02 сентября 2018

Как кодировать / декодировать строку UTF-8 в base64 в c # :

byte[] bytes = Encoding.UTF8.GetBytes("string-to-encode");
string base64 = Convert.ToBase64String(bytes);

Как кодировать / декодировать строку UTF-8 в base64 в Java

Java8 версия:

byte[] decodedBytes = Base64.getDecoder().decode(base64encodedstring);

Пример до Java8 (с кодеком Commons класса Base64):

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

(В Java у вас есть много возможностей сделать это (не только это), если вы используете хотя бы Java8, для этого есть встроенный класс , для предыдущих версий я обычно использую класс Base64 в кодеке Apache Commons )

...