- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是密码学新手,但我计划在以后的一些应用程序中使用它。
我想知道我制作的这个简短的演示程序中是否缺少某些组件。
我知道我正在用 300 字节进行假设,如果有办法绕过我想知道的猜测数组大小,
import java.io.*;
import java.security.GeneralSecurityException;
import java.security.spec.KeySpec;
import java.util.Arrays;
import javax.crypto.*;
import javax.crypto.spec.DESKeySpec;
public class CipherStreamDemo {
private static final byte[] salt={
(byte)0xC9, (byte)0xEF, (byte)0x7D, (byte)0xFA,
(byte)0xBA, (byte)0xDD, (byte)0x24, (byte)0xA9
};
private Cipher cipher;
private final SecretKey key;
public CipherStreamDemo() throws GeneralSecurityException, IOException{
SecretKeyFactory kf=SecretKeyFactory.getInstance("DES");
KeySpec spec=new DESKeySpec(salt);
key=kf.generateSecret(spec);
cipher=Cipher.getInstance("DES");
}
public void encrypt(byte[] buf) throws IOException, GeneralSecurityException{
cipher.init(Cipher.ENCRYPT_MODE,key);
OutputStream out=new CipherOutputStream(new FileOutputStream("crypt.dat"), cipher);
out.write(buf);
out.close();
}
public byte[] decrypt() throws IOException, GeneralSecurityException{
cipher.init(Cipher.DECRYPT_MODE, key);
InputStream in=new CipherInputStream(new FileInputStream("crypt.dat"), cipher);
byte[] buf=new byte[300];
int bytes=in.read(buf);
buf=Arrays.copyOf(buf, bytes);
in.close();
return buf;
}
public static void main(String[] args) {
try{
CipherStreamDemo csd=new CipherStreamDemo();
String pass="thisisasecretpassword";
csd.encrypt(pass.getBytes());
System.out.println(new String(csd.decrypt()));
}catch(Exception e){
e.printStackTrace();
}
}
}
//Output: thisisasecretpass
最佳答案
您假设输入恰好为 300 字节,并且您还假设您已在一次读取中读取了全部内容。您需要继续阅读,直到 read() 返回 -1。
我在对象流中没有看到任何点。他们只是增加了开销。删除它们。
关于Java CipherOutputStream 不返回所有字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22213483/
我是密码学新手,但我计划在以后的一些应用程序中使用它。 我想知道我制作的这个简短的演示程序中是否缺少某些组件。 我知道我正在用 300 字节进行假设,如果有办法绕过我想知道的猜测数组大小, impor
我正在尝试加密/解密一个文件,但我遇到了 ByteArrayOutputStream 和 CipherOutputStream 的问题。我可以加密一个文件,但是不能解密这个文件。我尝试在 Cipher
我想多次加密一个字符串。但我不知道为什么我以空字节数组结束。一个公钥可以,但添加另一个公钥会返回空结果。有谁知道为什么? private static byte[] encrypt(LinkedLis
我有一个由另一个 OutputStream 支持的 CipherOutputStream。在我将所有需要加密的数据写入 CipherOutputStream 之后,我需要附加一些未加密的数据。 The
我正在尝试使用公钥加密 Java 中的一些二进制数据,如这个有用页面中所述: http://www.junkheap.net/content/public_key_encryption_java 按照
这个问题已经有答案了: Initial bytes incorrect after Java AES/CBC decryption (10 个回答) 已关闭 4 年前。 我在将 FileInputSt
这是我的代码: import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream;
我有以下代码。但是,文件 b.xlsx 和 c.xlsx 的大小为 0 字节。为什么CipherOuputSteam不工作? public static void main(String[] args
我正在寻找一种方法,在给定任意大小的密码的情况下,使用 AES 加密我通过流接收的文件。为了让事情更容易开始,我试图将一些加密消息写入文件。但我遇到了麻烦: 我希望能够定义任意大小的密码。是否可以以“
尝试编写客户端/服务器程序,其中客户端读取文本文件并使用 CipherOutputStream 将其发送到服务器套接字。预期的文本文件已创建但为空,并且出现以下错误 Read Length-1 EOF
我有这个代码可以通过网络发送加密数据: s = new Socket(serverAddress, serverPort); is = s.getInputStream(); os = s.getOu
这个问题已经有答案了: CipherInputStream and CipherOutputStream are not generating files (1 个回答) 已关闭 6 年前。 我正在尝
我正在尝试使用 AES 密码来加密一些字节,但它返回一个无提示错误,这意味着我输入如下内容: byte[] raw = new String("Test","UTF8").getBytes("UTF8
我正在尝试使用 this example 对字符串进行 3DES 加密并将其存储在属性文件中.我遇到的问题是我不想直接从方法中将 encrypt() 和 decrypt() 的内容写入文件。我想将它存
我正在用 Java 破坏一个非常简单的 RSA 加密。但输出文件似乎是空的。如果我在没有 CipherOutputStream 的情况下尝试,同样的事情会起作用。我可以看到每一个写循环中的循环无效。任
我正在尝试使用 CipherOutputStream 加密字符串并将加密的字节存储在原始字节数组中,它由 ByteArrayOutputStream 支持,但 ByteArrayOutputStrea
我一直在尝试用 AES 编写一个加密文件,然后使用 JCA 中提供的密码流对其进行解密。但是,我在读取文件时遇到了问题,因为解密正在失控。 public class CipherStreams { p
我正在使用一个简单的 CipherInput/OutputStream 来尝试在 android 中加密/解密文件。 我遇到的问题是它似乎损坏了文件的前几个字节,但没有损坏其余部分。下面是一个简单文本
我想创建一个 OutputStream来自另一个 OutputStream其中新OutputStream将自动加密我写入的内容 OutputStream .我想使用 Bouncy CaSTLe,因为我
因此,我的应用程序从互联网下载视频,但在下载时对其进行即时加密,并将加密数据写入存储。我正在使用 AES/CTR/NoPadding。如何将加密数据附加到已加密的文件中?这是因为下载可能会停止或连接可
我是一名优秀的程序员,十分优秀!