· 7 years ago · Jul 27, 2018, 01:26 PM
1//Private Variables
2 private Secretkeyfactory secretkeyfactory ;
3 private Cipher cipher;
4
5 //Constructor
6 public Decrypt128CBC()
7 {
8 this.secretkeyfactory =Secretkeyfactory.getInstance("PBKDF2WithHmacSHA1");
9 this.cipher=Cipher.getInstance("AES/CBC/PKCS5Padding")
10 }
11 Public string DecryptedValue(String Ecryptedbase64string,String secKey)
12 {
13 byte[] dcdbytes=Base64.decodeBase64(Ecryptedbase64string.getBytes());
14 byte[] calculatesalt=Arrays.copyOfRange(dcdbytes,0,32);
15 byte[] initialvecto=Arrays.copyOfRange(dcdbytes,32,48);
16 byte[] encodedtext=Arrays.copyOfRange(dcdbytes,48,dcdbytes.length);
17 SecretKey sk=getRandompwd(calculatesalt,secKey);
18 IvParameterSpec vectspec=new IvParameterSpec(initialvecto);
19 byte[] decrtptxt=null;
20 synchronized(cipher){
21 cipher.init(Cipher.DECRYPT_MODE,sk,vectspec);
22 decrtptxt=cipher.doFinal(encodedtext)
23 }
24 String finalvalue=new String(decrtptxt);
25 return finalvalue;
26 }
27
28 private SecretKey getRandompwd(byte[] salt,String secKey)
29 {
30 SecretKeySpec objSecKeySpec=new SecretKeySpec(Base64.decodeBase64(secKey),"HmacSHA1");
31 String skey=Base64.encodeBase64String(objSecKeySpec.getEncoded());
32 KeySpec kspec=new PBEKeySpec(skey.toCharArray(),salt,76456,128);
33 SecretKey tmpSecKey=secretKeyKactory.generateSecret(kspec);
34 byte[] encoded=tmpSecKey.getEncoded();
35 return new SecretKeySpec(encoded,'AES')
36 }
37
38var crypto=require('crypto');
39var Ecryptedbase64string='fsffsfgf6575FGHDM767fsffsfs...…...';
40var DecryptKey='J8nMD7ZnFg......';
41var byteEncryptedString=new Buffer(Ecryptedbase64string,'base64');
42var salt=byteEncryptedString.slice(0,32);
43var iv=byteEncryptedString.slice(32,48);
44var cipherText=byteEncryptedString.slice(48,byteEncryptedString.length);
45var binaryKey=new Buffer(DecryptKey,""base64);
46var callback=function(err,key){
47let cipher=crypto.createDecipheriv('AES-128-CBC',key,iv);
48let finalDecrptedText=Buffer.concat([cipher.update(cipherText),cipher.final()]);
49};
50crypto.pbkdf2(binaryKey,salt,76456,16,callback);