- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在创建一个 .ser 文件,其中包含加密字符串及其解密 key 的映射。(我意识到这不是最好的方法,但我需要显示项目的不同加密方法)然后我对序列化的序列进行加密使用:
private void encryptKeysFile() throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, IllegalBlockSizeException, IOException{
SecretKey key64 = new SecretKeySpec( new byte[] { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 }, "Blowfish" );
Cipher cipher = Cipher.getInstance( "Blowfish" );
cipher.init( Cipher.ENCRYPT_MODE, key64 );
File keysFile = new File(System.getProperty("src"),fileName);
SealedObject sealedObject = new SealedObject(keysFile, cipher);
CipherOutputStream cipherOutputStream = new CipherOutputStream( new BufferedOutputStream( new FileOutputStream(fileName) ), cipher );
ObjectOutputStream outputStream = new ObjectOutputStream( cipherOutputStream );
outputStream.writeObject(sealedObject);
outputStream.close();
}
然后该对象被写回驱动器上的文件。我用另一种方法读取文件并解密它:
private File dencryptKeysFile() throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, IllegalBlockSizeException, IOException, ClassNotFoundException, BadPaddingException{
SecretKey key64 = new SecretKeySpec( new byte[] { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 }, "Blowfish" );
Cipher cipher = Cipher.getInstance( "Blowfish" );
cipher.init( Cipher.DECRYPT_MODE, key64 );
CipherInputStream cipherInputStream = new CipherInputStream(new BufferedInputStream(new FileInputStream(fileName)),cipher);
ObjectInputStream inputStream = new ObjectInputStream(cipherInputStream);
SealedObject sealedObject = (SealedObject)inputStream.readObject();
inputStream.close();
File keysFile =(File)sealedObject.getObject(cipher);
this.keysFile = keysFile;
return keysFile;
}
运行这些方法时出现错误:
java.io.StreamCorruptedException: invalid stream header: E0F0DDB8
at java.io.ObjectInputStream.readStreamHeader(Unknown Source)
at java.io.ObjectInputStream.<init>(Unknown Source)
at mainClasses.Encrypter.dencryptKeysFile(Encrypter.java:180)
at mainClasses.Encrypter.main(Encrypter.java:214)
在文件未被读取时抛出。加密器.java:180 = ObjectInputStream inputStream = new ObjectInputStream(cipherInputStream);
最佳答案
您正在使用相同的Cipher
进行密封然后加密,这意味着加密是在密封后状态下使用Cipher
进行的,然后您正在解密和解封与另一个Cipher
,但是这次Cipher
当然处于初始状态,而不是解封后状态,它只能在解封后才能达到,这永远不会发生。
您在这里使用腰带和背带。您不需要同时进行密封和密码流加密。使用其中之一。
关于java - 解密加密的 .ser 文件并抛出 StreamCorruptedException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41925353/
我正在尝试加载我不久前创建的类的 .ser 文件。 但是我收到了ClassNotFoundException。 我想知道,是因为我对这些文件中使用的类进行了更改吗?因为类名相同,所以唯一的变化是一些新
我想为我的数据加载构建进度条(Java)。但是,我的数据位于 .ser 文件中,因为我将其作为序列化对象读取。知道在这种情况下我应该如何呈现数据加载进度吗? 最佳答案 使用 ProgressMonit
因此,在我们的 weblogic 10.3 服务器中,会生成具有随机名称的文件夹(例如“7nxxd”、“tpy16q”)。每个里面都有相同的子目录结构: /.tld_cache/WEB-INF/tld
加载我的项目资源管理器中的 .ser 文件 我一直在处理文件路径和序列化,一切都很好,但是使用我当前的代码,我的文件路径只是文件名(“Students.ser”),这显然会将文件保存在项目之外不太好(
Closed. This question is off-topic。它当前不接受答案。
如果尚不存在对象,我正在尝试创建一个新的 .ser 文件来存储对象。运行时,它会抛出 EOFException。 EOFException 到底是什么?该方法是否正确编写以创建和读取 .ser 文件?
当我在类 ser 之外分配此值时,如何从类方法中使用 ser ?就像下面它在 Window 中不起作用一样。 import socket, datetime,
我正在实现一个 Python 脚本来读取 XBee 发送的帧。 PC将接收帧并处理它们。 我有一个问题,因为我在 XBee 中使用 AP=2,所以所有帧都可以有转义字符。我想检测它们并在使用它们之前输
我正在尝试读取存储在 *.ser 文件中的所有对象并将它们存储在一个对象数组中。如何获取存储在该文件中的对象数量(以便我可以将数组声明为 number_of_objects 长)? 我检查了 API,
这个问题已经有答案了: Eclipse - java.lang.ClassNotFoundException (44 个回答) 已关闭 4 年前。 我有一个项目并序列化了一个类,并在 .classpa
这个问题已经有答案了: StreamCorruptedException during serialised object decryption (and other byte fields) (1
我想创建一个空的 .ser 文件来存储对象的数组列表(如果尚未创建),以便稍后在程序中使用。在弄清楚我当前的问题后,我将在稍后添加是否存在检查。我的 File = new File(etc 等) 行上
好吧,我尝试了很多方法来创建可执行 jar,但 4 小时后我放弃了。我正在尝试使用我的项目制作可执行的 jar 文件,其中主类位于 Controller 中。基本上我尝试使用导出/可运行的 JAR 文
我的想法是,我想从位于服务器中的序列化文件中读取一个对象。如何做到这一点? 我只能使用以下代码读取 .txt 文件: void getInfo() { try { URL
我有一个 .ser 文件。我知道它的类,但我不知道该对象包含哪些属性。有没有什么方法可以对其进行“反序列化”?还是根本不可能? 最佳答案 ObjectInputStream in = new Obje
对于构建语音情绪检测和识别系统,哪种方法会更好?隐马尔可夫模型还是深度学习 (RNN-LSTM) 方法?我必须建立一个 SER 系统,我对两者感到困惑。如果有比这两个更好的模型,请告诉。 最佳答案 基
我从学生类中创建了一系列对象并将它们存储在 vector 中。每个对象创建后我都会将其写入 .ser 文件中。然后我把它们读回来。我的代码运行完美。我想知道的是,我这样做的方式是正确的还是有任何简单且
我使用的是stanford corenlp。当我执行文件SentimentTraining.java时,它需要model.ser.gz,但我无法在下载的corenlp包中找到它。你能告诉我如何找到mo
我正在使用一个连接到 arduino 的传感器,并使用 ser.readline() 来打印传感器的读数和成功。但是当我想使用 ser.readline 将读取值发送到 mysql 时。它只传递设备名
这让我抓狂。当我保存某些内容时,Tomcat 偶尔会崩溃并出现以下错误... 编辑 JSP 或 Java 文件。保存您的工作。那么可能有 25% 的概率发生崩溃……这里的线索是它在大多数时间都能正常工
我是一名优秀的程序员,十分优秀!