📄 mcipher.java
字号:
package net.jumperz.app.httptunnel;
import java.io.*;
import java.security.*;
import javax.crypto.*;
import javax.crypto.spec.*;
import net.jumperz.security.MCryptInfo;
public final class MCipher
implements MCryptInfo
{
private Cipher encryptCipher;
private Cipher decryptCipher;
private SecretKeySpec key;
private File keyFile;
public static String keyFileName;
private static MCipher instance;
//----------------------------------------------------------------------------------------------
public static final synchronized MCipher getInstance()
throws Exception
{
if( instance == null )
{
instance = new MCipher();
}
return instance;
}
//----------------------------------------------------------------------------------------------
private MCipher()
throws Exception
{
key = null;
keyFile = new File( keyFileName );
if( keyFile.exists() )
{
FileInputStream ifstream = new FileInputStream( keyFile );
ObjectInputStream iostream = new ObjectInputStream( ifstream );
key = ( SecretKeySpec )iostream.readObject();
iostream.close();
}
else
{
throw new FileNotFoundException( keyFileName );
}
encryptCipher = Cipher.getInstance( ALG + "/" + MODE + "/" + PADDING );
encryptCipher.init( Cipher.ENCRYPT_MODE, key );
decryptCipher = Cipher.getInstance( ALG + "/" + MODE + "/" + PADDING );
decryptCipher.init( Cipher.DECRYPT_MODE, key );
}
//----------------------------------------------------------------------------------------------
public final synchronized byte[] encrypt( byte[] data )
throws Exception
{
return encryptCipher.doFinal( data );
}
//----------------------------------------------------------------------------------------------
public final synchronized byte[] decrypt( byte[] data )
throws Exception
{
return decryptCipher.doFinal( data );
}
//----------------------------------------------------------------------------------------------
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -