3
저는 java에서 매우 간단한 RSA 암호화를 망치고 있습니다. 출력 파일은 비어있는 것 같습니다. CipherOutputStream없이 시도하면 똑같은 작동합니다. 나는 루프에서 각각의 사이클을 쓰는 것을 볼 수 없다. 어떤 단서 ... 감사합니다.rsa와 함께 사용되는 CipherOutputStream
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.Security;
import javax.crypto.Cipher;
import javax.crypto.CipherInputStream;
import javax.crypto.CipherOutputStream;
public class ExampleRSA {
private static String VIDEO_SOURCE_FILE = "C:/Users/ggoldman/Desktop/Video/inputVideo.dv";
private static String EncryptedFile = "C:/Users/ggoldman/Desktop/Video/encVideo.dv";
private static File decfile = new File("C:/Users/ggoldman/Desktop/Video/decVideo.dv");
private static File incfile = new File(EncryptedFile);
private static File sourceMedia = new File(VIDEO_SOURCE_FILE);
public static void main(String[] args) throws Exception {
KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA");
Cipher cipher = Cipher.getInstance("RSA");
kpg.initialize(1024);
KeyPair keyPair = kpg.generateKeyPair();
PrivateKey privKey = keyPair.getPrivate();
PublicKey pubKey = keyPair.getPublic();
// Encrypt
cipher.init(Cipher.ENCRYPT_MODE, pubKey);
FileInputStream fis = new FileInputStream(sourceMedia);
FileOutputStream fos = new FileOutputStream(incfile);
CipherOutputStream cos = new CipherOutputStream(fos, cipher);
byte[] block = new byte[32];
int i;
while ((i = fis.read(block)) != -1) {
cos.write(block, 0, i);
}
cos.close();
}
나를 위해 txt 파일을 사용하십시오. 경로 및 파일 사용 권한을 확인하십시오 – Yahor10
@ Yahor10, 제 컴퓨터에서 재현 된 동작. 어떻게 든 입력에 의존하는 것 같습니다. –
이 질문이 발견되었습니다. http://stackoverflow.com/questions/2221730/my-cipheroutputstream-fails-silently –