コードコピーは次のとおりです。
java.io.bytearrayinputStreamをインポートします。
java.io.bytearrayoutputStreamをインポートします。
java.io.fileをインポートします。
java.io.fileinputStreamをインポートします。
java.io.fileoutputStreamをインポートします。
java.io.inputStreamをインポートします。
java.io.outputStreamをインポートします。
java.security.securerandomをインポートします。
javax.crypto.cipherをインポートします。
javax.crypto.cipherinputStreamをインポートします。
javax.crypto.secretkeyをインポートします。
javax.crypto.secretkeyFactoryをインポートします。
javax.crypto.spec.deskeyspecをインポートします。
javax.crypto.spec.ivparameterspecをインポートします。
パブリッククラスの在庫{
private static final string passkey = "afasdf";
private static final string deskey = "asfsdfsdf";
/**
* @comments:ファイルを暗号化します
* @param filepath filepath to necrypt
* @Param Filenameファイル
* @paramモード暗号化モード暗号化:cipher.encrypt_mode decryption:cipher.decrypt_mode
* @戻る
*/
public static string encoderordeCoder(string filepath、string filename、int mode){
inputstream is = null;
outputStream out = null;
cipherinputStream cis = null;
試す {
securerandom sr = new Securerandom();
deskeyspec dks = new deskeyspec(deskey.getBytes());
SecretKeyFactory keyFactory = secretKeyFactory.getInstance( "des");
SecretKey SecureKey = keyFactory.generateSecret(dks);
IVParameterSpec IV = new IVParameterSpec(passKey.getBytes());
cipher cipher = cipher.getInstance( "des/cbc/pkcs5padding");
cipher.init(mode、securekey、iv、sr);
file encoderfile = new file(filepath + file.separator + "encoder");
if(!encoderfile.exists()){
encoderfile.mkdir();
}
IS = new FileInputStream(filepath + file.separator + filename);
out = new fileoutputStream(filepath + file.separator + "encoder"
+ file.separator + filename);
cis = new cipherinputStream(is、cipher);
byte [] buffer = new byte [1024];
int r;
while((r = cis.read(buffer))> 0){
out.write(buffer、0、r);
}
} catch(例外e){
e.printstacktrace();
} ついに {
試す {
if(is!= null){
is.close();
}
if(cis!= null){
cis.close();
}
if(out!= null){
out.close();
}
} catch(例外E1){
}
}
filepath + file.separator + "encoder" + file.separatorを返します
+ファイル名;
}
/**@コメント:文字列を暗号化します
* @param SRCソース文字列
* @paramモード暗号化モード暗号化:cipher.encrypt_mode decryption:cipher.decrypt_mode
* @戻る
*/
public static string encoderordeCoder(string src、intモード){
string tag = "";
inputstream is = null;
outputStream out = null;
cipherinputStream cis = null;
試す {
securerandom sr = new Securerandom();
deskeyspec dks = new deskeyspec(deskey.getBytes());
SecretKeyFactory keyFactory = secretKeyFactory.getInstance( "des");
SecretKey SecureKey = keyFactory.generateSecret(dks);
IVParameterSpec IV = new IVParameterSpec(passKey.getBytes());
cipher cipher = cipher.getInstance( "des/cbc/pkcs5padding");
cipher.init(mode、securekey、iv、sr);
cis = new cipherinputStream(new bytearrayinputStream(src.getBytes())、cipher);
out = new bytearrayoutputStream();
byte [] buffer = new byte [1024];
int r;
while((r = cis.read(buffer))> 0){
out.write(buffer、0、r);
}
tag = out.toString();
} catch(例外e){
e.printstacktrace();
} ついに {
試す {
if(is!= null){
is.close();
}
if(cis!= null){
cis.close();
}
if(out!= null){
out.close();
}
} catch(例外E1){
}
}
タグを返します。
}
public static void main(string [] args){
System.out.println( "aaa");
文字列t = encoderordeCoder( "aaa"、cipher.encrypt_mode);
System.out.println(t);
system.out.println(encoderordeCoder(t、cipher.decrypt_mode));
}
}