Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用C#解密字符串,用Java加密_Java_C#_Encryption_Cryptography_Aes - Fatal编程技术网

用C#解密字符串,用Java加密

用C#解密字符串,用Java加密,java,c#,encryption,cryptography,aes,Java,C#,Encryption,Cryptography,Aes,我有加密字符串的java代码。我必须用C#解密加密字符串 C#代码: 无法生成用于解密的密钥。。。你必须使用同一把钥匙。因此,如果它是一个字符串,则必须将其存储在某个位置或以某种方式将其传递给对象,但解密密钥必须与加密密钥相同 public static String decrypt(String ciphertext) { key = generateKey(SALT, ENCRYPTION_KEY); byte[] decrypted = doFinal(Cipher.DEC

我有加密字符串的java代码。我必须用C#解密加密字符串

C#代码:


无法生成用于解密的密钥。。。你必须使用同一把钥匙。因此,如果它是一个字符串,则必须将其存储在某个位置或以某种方式将其传递给对象,但解密密钥必须与加密密钥相同

public static String decrypt(String ciphertext) {
    key = generateKey(SALT, ENCRYPTION_KEY);
    byte[] decrypted = doFinal(Cipher.DECRYPT_MODE, key, IV, base64(ciphertext));
    return new String(decrypted, "UTF-8");
}

private static byte[] doFinal(int encryptMode, SecretKey key, String iv, byte[] bytes) {
    cipher.init(encryptMode, key, new IvParameterSpec(hex(iv)));
    return cipher.doFinal(bytes);
}

private static SecretKey generateKey(String salt, String passphrase) {
    SecretKeyFactory factory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1");
     KeySpec spec = new PBEKeySpec(passphrase.toCharArray(), hex(salt), ITERATION_COUNT, KEY_SIZE);
     SecretKey key = new SecretKeySpec(factory.generateSecret(spec).getEncoded(), "AES");
     return key;
 }