2014-07-20 2 views
-1

기본적으로 사용자의 자격 증명을 저장하기 위해 암호화 된 파일을 만들 수 있습니다. 이제 내 요구 사항은 해당 파일을 암호 해독하여 자격 증명을 얻고 사용자 확인을 위해 나중에 참조 할 때 사용하는 것입니다. Windows 기반 데스크톱 응용 프로그램을 만들고 있습니다. 같은 클래스에서 성공적으로 암호 해독하는 코드는 거의 없지만 다른 클래스에서 암호를 해독하는 방법을 얻지 못했습니다. 다음은 암호화에 사용 된 동일한 코드입니다. 나는 성공적으로 달린 그물에서 그것을 얻었다. 새 클래스에서 암호를 해독하는 방법을 알려주세요.다른 클래스의 java에서 DES를 사용하여 암호화 된 파일의 암호를 해독 할 수 없습니다.

import java.security.*; 
import javax.crypto.*; 
public class PrivateExample 
{ 
public static void main (String[] args) throws Exception 
{ 
    String text=new String(); 
    text="This is an encryption test"; 
    byte[] plainText = text.getBytes("UTF8"); 
    System.out.println("\nStart generating DES key"); 
    KeyGenerator keyGen = KeyGenerator.getInstance("DES"); 
    keyGen.init(56); 
    Key key = keyGen.generateKey(); 
    System.out.println("Finish generating DES key"); 

    // get a DES cipher object and print the provider 
    Cipher cipher = Cipher.getInstance("DES/ECB/PKCS5Padding"); 
    System.out.println("\n" + cipher.getProvider().getInfo()); 
    // 
    // encrypt using the key and the plaintext 
    System.out.println("\nStart encryption"); 
    cipher.init(Cipher.ENCRYPT_MODE, key); 
    byte[] cipherText = cipher.doFinal(plainText); 
    System.out.println("Finish encryption: "); 
    System.out.println(new String(cipherText, "UTF8")); 

    //Now writing to an ouput file the cipherText 
    try{ 
     FileOutputStream fs=new FileOutputStream("c:/test.txt"); 
     fs.write(cipherText); 
    }catch(Exception e){ 
     e.printStackTrace(); 
    } 

} 
} 
+0

위의 코드는 * 어떤 종류의 보안도 제공하지 않습니다. 개발을 시작하기 전에 주제를 읽을 수 있습니다. –

답변

0

저장 한 파일에서 textEncrypted을 읽은 후 Cipher.doFinal() 메서드를 사용하여 암호를 해독 할 수 있습니다. 또한 question을 확인하십시오. DES를 사용하여 Java에서 파일을 암호화 및 암호 해독하면 파일 작업시 도움이됩니다.

desCipher.init(Cipher.DECRYPT_MODE, myDesKey); 
byte[] textDecrypted = desCipher.doFinal(textEncrypted); 
0

클래스가 없으며 하나의 메소드가 있습니다. 그리고 그 방법은 당신이 그것을 사용할 때마다 새로운 무작위 키를 생성합니다. 대칭 키는 암호화와 암호 해독 모두에서 동일해야합니다.