Tag: cryptojs

如何使用crypto-js库在客户端加密消息并在Java服务器上解密它

背景:我正在处理的应用程序应该脱机工作。 我有一个HTML5页面,用户键入的数据使用crypto-js库加密。 我希望将加密的消息发送到java webserver,然后在服务器端解密。 我正在做什么我能够使用Crypto-js加密消息 var message = “my message text”; var password = “user password”; var encrypted = CryptoJS.AES.encrypt( message ,password ); console.log(encrypted.toString()); // this prints an encrypted text “D0GBMGzxKXU757RKI8hDuQ==” 我想要做的是将加密文本“D0GBMGzxKXU757RKI8hDuQ ==”传递给java服务器端代码并​​解密加密的消息。 我尝试了很多选项来解密java服务器端的crypto-js加密消息。 请在服务器端找到我的代码,该代码应该对加密文本进行解密。 public static String decrypt(String keyText,String encryptedText) { // generate key Key key = new SecretKeySpec(keyText.getBytes(), “AES”); Cipher chiper = Cipher.getInstance(“AES”); […]

如何解密javascript中的文件,该文件由JAVA用AES加密

我用AES256加密了Java中的JPG文件,但不知道用javascript解密JPG文件。 谁有更好的主意? 我正在苦苦挣扎4天。 byte[] ivBytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; String key = “1234567890123456789012345678901d”; AlgorithmParameterSpec ivSpec = new IvParameterSpec(ivBytes); SecretKeySpec newKey = new SecretKeySpec(key.getBytes(“UTF-8”), “AES”); Cipher cipher = Cipher.getInstance(“AES/CBC/PKCS5Padding”); cipher.init(mode, newKey, ivSpec); InputStream input = null; OutputStream output = null; try […]

如何在java服务器端解密cryptojs AES加密消息?

我有以下基于cryptojs的javascript加密/解密函数,它们运行得非常好。 我使用随机盐,随机iv值和特定密码,同时使用cryptpjs加密消息。 我重复使用相同的salt,iv和密码来生成密钥,同时解密加密的消息。 这部分效果很好.. function encrypt(){ var salt = CryptoJS.lib.WordArray.random(128/8); var iv = CryptoJS.lib.WordArray.random(128/8); console.log(‘salt ‘+ salt ); console.log(‘iv ‘+ iv ); var key128Bits = CryptoJS.PBKDF2(“Secret Passphrase”, salt, { keySize: 128/32 }); console.log( ‘key128Bits ‘+ key128Bits); var key128Bits100Iterations = CryptoJS.PBKDF2(“Secret Passphrase”, salt, { keySize: 128/32, iterations: 100 }); console.log( ‘key128Bits100Iterations ‘+ key128Bits100Iterations); var encrypted = […]

使用Java进行AES加密并使用Javascript进行解密

我正在制作一个需要基于Java的AES加密和基于JavaScript的解密的应用程序。 我使用以下代码进行加密作为基本表单。 public class AESencrp { private static final String ALGO = “AES”; private static final byte[] keyValue = new byte[] { ‘A’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’, ‘g’, ‘h’, ‘i’, ‘j’, ‘k’,’l’, ‘m’, ‘n’, ‘o’, ‘p’}; public static String encrypt(String Data) throws Exception { Key key = generateKey(); Cipher c = Cipher.getInstance(ALGO); c.init(Cipher.ENCRYPT_MODE, key); […]

在AES解密时,给定Final Block未正确填充

首先,我会告诉我的主要目标是什么。 我将使用AES加密客户端中的某些内容,然后使用RSA公钥加密重要的AES规范,并将AES加密数据和RSA加密AES规范发送到服务器。 所以在服务器上,我将使用RSA私钥解密AES密钥规范,然后使用这些AES规范,我将解密AES加密数据。 我通过测试加密和解密成功地使RSA部分工作。 在实现RSa之前,我要使这个AES艺术工作。 对于客户端,我使用的是crypto-js $(“#submit”).click(function() { var salt = CryptoJS.lib.WordArray.random(16); var iv = CryptoJS.lib.WordArray.random(16); var pass = CryptoJS.lib.WordArray.random(16); var message = “Test Message for encryption”; var key128Bits = CryptoJS.PBKDF2(pass, salt, { keySize: 128 }); var key128Bits10Iterations = CryptoJS.PBKDF2(pass, salt, { keySize: 128, iterations: 10 }); var encrypted = CryptoJS.AES.encrypt(message, key128Bits10Iterations, { iv: iv, […]

将Java的PBEWithMD5AndDES转换为JavaScript

我正在尝试用JavaScript复制Java代码。 下面是我的Java代码: public static String encrypt(String input) final byte[] SALT= { (byte) 0x21, (byte) 0x21, (byte) 0xF0, (byte) 0x55, (byte) 0xC3, (byte) 0x9F, (byte) 0x5A, (byte) 0x75 }; final int ITERATION_COUNT = 31; { if (input == null) { throw new IllegalArgumentException(); } try { KeySpec keySpec = new PBEKeySpec(null, SALT, ITERATION_COUNT); AlgorithmParameterSpec paramSpec = […]

CryptoJS AES加密和Java AES解密

我只是问这个,因为我已经阅读了很多关于加密AES加密的post2天了,就在我认为我得到它的时候,我意识到我根本没有得到它。 这篇文章是我最接近我的问题,我有完全相同的问题,但没有答案: CryptoJS AES加密和JAVA AES解密值不匹配 我试过很多方面,但我没有把它做对。 首先 我正在获取已经加密的字符串(我只有代码才能看到它们是如何做的),因此修改加密方式不是一种选择。 这就是为什么所有类似的问题对我都没有用。 第二 我有权访问密钥,我可以修改它(所以如果需要,调整长度是一个选项)。 加密是在CryptoJS上完成的,它们将加密的字符串作为GET参数发送。 GetParamsForAppUrl.prototype.generateUrlParams = function() { const self = this; return new Promise((resolve, reject) => { const currentDateInMilliseconds = new Date().getTime(); const secret = tokenSecret.secret; var encrypted = CryptoJS.AES.encrypt(self.authorization, secret); encrypted = encrypted.toString(); self.urlParams = { token: encrypted, time: currentDateInMilliseconds }; resolve(); }); }; 我可以使用CryptoJS在javascript上轻松解密这个: […]

如何使用Java从CryptoJS解密加密的AES-256字符串?

我有来自CryptoJS的加密AES-256字符串和密码短语。 我需要用Java解密它,但无法弄清楚如何做到这一点。 您似乎需要IV,密钥和salt来解密,并且在CryptoJS主页中 ,加密数据已经包含所有这些,并且CryptoJS可以以某种方式将它们从加密输入中解析出来。 谁知道怎么做? 我已经看到了很多关于CryptoJS的例子 – Java加密/解密,但大多数都使用硬编码的IV /密钥,或者只是将密码/密钥从cryptoJS端发送到Java端。 我所拥有的只是一个密码,就像这个网站所做的那样!