相关疑难解决方法(0)

使用Java将十六进制转储的字符串表示形式转换为字节数组?

我正在寻找一种方法来转换长字符串(从转储),它表示十六进制值到一个字节数组.

我不能比在这里发布相同问题的人更好地措辞.

但为了保持原创,我会用自己的方式来表达它:假设我有一个"00A0BF"我想要解释为的字符串

byte[] {0x00,0xA0,0xBf}
Run Code Online (Sandbox Code Playgroud)

我该怎么办?

我是Java新手,最后使用BigInteger并注意领先的十六进制零.但我觉得它很难看,我确信我错过了一些简单的东西.

java hex byte dump

353
推荐指数
12
解决办法
44万
查看次数

如何在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 = CryptoJS.AES.encrypt("Message", key128Bits100Iterations, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7  });
  console.log('encrypted   '+ encrypted  );
}

function  decrypt(){
  var salt = CryptoJS.enc.Hex.parse("4acfedc7dc72a9003a0dd721d7642bde");
  var iv = CryptoJS.enc.Hex.parse("69135769514102d0eded589ff874cacd");
  var …
Run Code Online (Sandbox Code Playgroud)

java encryption aes cryptojs

10
推荐指数
2
解决办法
1万
查看次数

如何在Python中解密来自JavaScript CryptoJS.AES.encrypt(密码,密码)的密码

我有一个密码,可以通过JavaScript加密

  var password = 'sample'
  var passphrase ='sample_passphrase'
  CryptoJS.AES.encrypt(password, passphrase)
Run Code Online (Sandbox Code Playgroud)

然后我尝试解密密码来自Python中的JavaScript:

  from Crypto.Cipher import AES
  import base64

  PADDING = '\0'

  pad_it = lambda s: s+(16 - len(s)%16)*PADDING
  key = 'sample_passphrase'
  iv='11.0.0.101'        #------> here is my question, how can I get this iv to restore password, what should I put here?
  key=pad_it(key)        #------> should I add padding to keys and iv?
  iv=pad_it(iv)          ##
  source = 'sample'
  generator = AES.new(key, AES.MODE_CFB,iv)
  crypt = generator.encrypt(pad_it(source))
  cryptedStr = base64.b64encode(crypt)
  print cryptedStr
  generator = AES.new(key, …
Run Code Online (Sandbox Code Playgroud)

javascript python aes pycrypto cryptojs

9
推荐指数
1
解决办法
5313
查看次数

JavaScript加密和PHP解密

我在JavaScript中加密我的用户密码,如下所示:

 var encryptedPassword = CryptoJS.AES.encrypt(password, "Secret Passphrase");
Run Code Online (Sandbox Code Playgroud)

它工作正常,但现在我试图在服务器端解密PHP,如下所示:

 $iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC), MCRYPT_RAND);
 $decryptPassword = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, "Secret Passphrase", base64_decode($password), MCRYPT_MODE_CBC, $iv);
Run Code Online (Sandbox Code Playgroud)

它根本不起作用,解密的密码字符串看起来很奇怪:

 string(64) ">?OX2MS???v?<$????i????_??P???\??=?_6(?m????,4WT7??a"
Run Code Online (Sandbox Code Playgroud)

以下是有用评论之后我的JavaScript代码的当前状态:

    var encryptedPassword = CryptoJS.AES.encrypt(password, "Secret Passphrase");
    var ivHex = encryptedPassword.iv.toString();
    var ivSize = encryptedPassword.algorithm.ivSize; // same as blockSize
    var keySize = encryptedPassword.algorithm.keySize;
    var keyHex = encryptedPassword.key.toString();
    var saltHex = encryptedPassword.salt.toString(); // must be sent
    var openSslFormattedCipherTextString = encryptedPassword.toString(); // not used
    var cipherTextHex = encryptedPassword.ciphertext.toString(); // must be sent
Run Code Online (Sandbox Code Playgroud)

我将saltHex和CipherTextHex发送到PHP服务器,我正在使用mcrypt_decrypt(),如下所示:

 $iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC), $saltHex); …
Run Code Online (Sandbox Code Playgroud)

javascript php encryption mcrypt cryptojs

4
推荐指数
2
解决办法
2万
查看次数

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

我有来自CryptoJS的加密AES-256字符串和密码短语.我需要用Java解密它,但无法弄清楚如何做到这一点.您似乎需要IV,密钥和盐来解密,并且在CryptoJS主页中,加密数据已经包含所有这些,并且CryptoJS可以某种方式将它们从加密输入中解析出来.

谁知道怎么做?我已经看到了很多关于CryptoJS的例子 - Java加密/解密但是大多数都使用硬编码的IV /密钥,或者只是将密码/密钥从cryptoJS端发送到Java端.我所拥有的只是一个密码,就像这个网站所做的那样!

java encryption cryptography aes cryptojs

2
推荐指数
1
解决办法
1万
查看次数

标签 统计

cryptojs ×4

aes ×3

encryption ×3

java ×3

javascript ×2

byte ×1

cryptography ×1

dump ×1

hex ×1

mcrypt ×1

php ×1

pycrypto ×1

python ×1