在Java中使用/解密输入/输出流?

use*_*891 2 java security encryption stream

有没有办法在Java中加密和解密输入和输出流?谢谢

rek*_*ire 11

查看CipherInputStream和CipherOutputStream.

CipherInputStream由一个InputStream和一个Cipher这样read()方法返回从基础InputStream读入但已经由该Cipher另外处理的数据.在被CipherInputStream使用之前,必须完全初始化密码.

例如,如果初始化密码以进行解密,则CipherInputStream将在返回解密数据之前尝试读入数据并对其进行解密.

该类严格遵守其祖先类java.io.FilterInputStream和java.io.InputStream的语义,尤其是失败语义.该类具有其祖先类中指定的那些方法,并将它们全部覆盖.此外,此类捕获其祖先类未抛出的所有异常.特别地,skip方法跳过,并且可用方法仅计算由封装的密码处理的数据.

对于使用此类的程序员来说,不要使用未在此类中定义或覆盖的方法(例如稍后添加到其中一个超类中的新方法或构造函数),这一点至关重要,因为这些方法的设计和实现不太可能考虑CipherInputStream的安全影响.


CipherOutputStream被写出到底层OutputStream之前的数据组成一个OutputStream和一个Cipher这样write()方法第一工艺的.在由CipherOutputStream使用之前,必须完全初始化密码.

例如,如果密码被初始化以进行加密,则CipherOutputStream将在写出加密数据之前尝试加密数据.

该类严格遵守其祖先类java.io.OutputStream和java.io.FilterOutputStream的语义,尤其是失败语义.该类具有其祖先类中指定的那些方法,并将它们全部覆盖.此外,此类捕获其祖先类未抛出的所有异常.

对于使用此类的程序员来说,不要使用未在此类中定义或覆盖的方法(例如稍后添加到其中一个超类中的新方法或构造函数),这一点至关重要,因为这些方法的设计和实现不太可能考虑CipherOutputStream的安全影响.

  • 男人,不要从那些明显没有付出任何努力的人那里奖励这样的问题. (2认同)