xml暗号化を初めて使用します。.netでxmlファイルを暗号化し、x509証明書を使用してjavaで暗号化されたファイルを復号化します。これはできますか?
質問する
2366 次
2 に答える
1
はい、完全に可能です。プログラミング言語を使用してよく知られているアルゴリズムを使用してファイルを暗号化し、別のプログラミング言語で復号化できます。C# で x509 を使用した暗号化については、http: //msdn.microsoft.com/en-us/library/ms229744.aspxをご覧ください。
于 2012-04-24T12:38:03.027 に答える
0
以下の例をご覧ください。
public class CryptoUtil {
public static byte[] rsaEncrypt(byte[] publicKey, byte[] data) throws IOException, InvalidKeySpecException,
NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException {
X509EncodedKeySpec publicKeySpec = new X509EncodedKeySpec(publicKey);
KeyFactory kf = KeyFactory.getInstance("RSA");
PublicKey pk = kf.generatePublic(publicKeySpec);
Cipher rsa = Cipher.getInstance("RSA");
rsa.init(Cipher.ENCRYPT_MODE, pk);
ByteArrayOutputStream byteOutputStream = new ByteArrayOutputStream();
CipherOutputStream os = new CipherOutputStream(byteOutputStream, rsa);
os.write(data);
os.flush();
os.close();
return byteOutputStream.toByteArray();
}
public static byte[] rsaDecrypt(byte[] privateKey, byte[] data) throws IOException, InvalidKeySpecException,
NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException {
PKCS8EncodedKeySpec privateKeySpec = new PKCS8EncodedKeySpec(privateKey);
KeyFactory kf = KeyFactory.getInstance("RSA");
PrivateKey pk = kf.generatePrivate(privateKeySpec);
Cipher rsa = Cipher.getInstance("RSA");
rsa.init(Cipher.DECRYPT_MODE, pk);
ByteArrayInputStream byteInputStream = new ByteArrayInputStream(data);
InputStream is = new CipherInputStream(byteInputStream, rsa);
byte[] message = IOUtils.toByteArray(is);
is.close();
return message;
}
}
于 2012-04-24T13:51:39.110 に答える