Encryption and decryption tool: Package COM. mr. util; </P> <p> Import Java. io. fileinputstream; <br/> Import Java. io. filenotfoundexception; <br/> Import Java. io. fileoutputstream; <br/> Import Java. io. ioexception; <br/> Import Java. io. inputstream; <br/> Import Java. io. outputstream; <br/> Import Java. security. *; <br/> Import javax. crypto. cipher; <br/> Import javax. crypto. cipherinputstream; <br/> Import javax. crypto. cipheroutputstream; <br/> impor T javax. crypto. secretkeyfactory; <br/> Import javax. crypto. spec. deskeyspec; <br/> import sun. misc. base64decoder; <br/> import sun. misc. base64encoder; </P> <p> public abstract class descoder {<br/> // a weak key <br/> private final static base64encoder base64encoder = new base64encoder (); <br/> private final static base64decoder base64decoder = new base64decoder (); <br/> Private Static string encoding = "GB K "; <br/> Public static string skey =" k34aae4taabmaqaa9hcaaidcaadbrqaa "; </P> <p>/** <br/> * encrypted string <br/> */<br/> Public static string ebotongencrypto (string Str) {<br/> string result = STR; <br/> If (STR! = NULL & Str. length ()> 0) {<br/> try {<br/> byte [] encodebyte = fig (Str. getbytes (encoding); <br/> result = base64encoder. encode (encodebyte); </P> <p >}catch (exception e) {<br/> E. printstacktrace (); <br/>}< br/> return result; <br/>}</P> <p>/** <br/> * decrypt a string <br/> */<br/> Public static string ebotongdecrypto (string Str) {<br/> string result = STR; <br/> If (STR! = NULL & Str. length ()> 0) {<br/> try {<br/> byte [] encodebyte = base64decoder. decodebuffer (STR); </P> <p> byte [] decoder = incluricdecrypto (encodebyte); <br/> result = new string (decoder, encoding ); <br/>} catch (exception e) {<br/> E. printstacktrace (); <br/>}< br/> return result; <br/>}</P> <p>/** <br/> * encrypted byte [] <br/> */<br/> Public static byte [] ebotongencrypto (byte [] Str) {<br/> byte [] res Ult = NULL; <br/> If (STR! = NULL & Str. length> 0) {<br/> try {<br/> byte [] encodebyte = fig (STR); <br/> result = base64encoder. encode (encodebyte ). getbytes (); </P> <p >}catch (exception e) {<br/> E. printstacktrace (); <br/>}< br/> return result; <br/>}</P> <p>/** <br/> * decrypt byte [] <br/> */<br/> Public static byte [] ebotongdecrypto (byte [] Str) {<br/> byte [] result = NULL; <br/> If (STR! = NULL & Str. length> 0) {<br/> try {</P> <p> byte [] encodebyte = base64decoder. decodebuffer (new string (STR, <br/> encoding); <br/> // byte [] encodebyte = base64decoder. decodebuffer (New <br/> // string (STR); <br/> byte [] decoder = encryption ricdecrypto (encodebyte ); <br/> result = new string (decoder ). getbytes (encoding); <br/> result = new string (decoder ). getbytes (); <br/>}catch (exception e) {<br/> E. printstacktrace (); <br/>}< br/> return result; <br/>}</P> <p>/** <br/> * symmetric encryption byte array and return <br/> * @ Param bytesource <br/> * data to be encrypted <br/> * @ return encrypted data <br/> * @ throws exception <br/> */<br/> Public static byte [] descriricencrypto (byte [] bytesource) throws exception {<br/> try {<br/> int mode = cipher. encrypt_mode; <br/> secretkeyfactory keyfactory = secretkeyfactory. getinstance ("des"); <br/> byte [] keydata = skey. getbytes (); <br/> deskeyspec keyspec = new deskeyspec (keydata); <br/> key = keyfactory. generatesecret (keyspec); <br/> cipher = cipher. getinstance ("des"); <br/> cipher. init (mode, key); </P> <p> byte [] result = cipher. dofinal (bytesource); <br/> return result; <br/>} catch (exception e) {<br/> throw E; <br/>}finally {<br/>}</P> <p>/** <br/> * decrypts the byte array symmetric and returns <br /> * <br/> * @ Param bytesource <br/> * data to be decrypted <br/> * @ return decrypted data <br/> * @ throws exception <br/> */<br/> Public static byte [] symmetricdecrypto (byte [] bytesource) throws exception {<br/> try {<br/> int mode = cipher. decrypt_mode; <br/> secretkeyfactory keyfactory = secretkeyfactory. getinstance ("des"); <br/> byte [] keydata = skey. getbytes (); <br/> deskeyspec keyspec = new deskeyspec (keydata); <br/> key = keyfactory. generatesecret (keyspec); <br/> cipher = cipher. getinstance ("des"); <br/> cipher. init (mode, key); <br/> byte [] result = cipher. dofinal (bytesource); <br/> return result; <br/>} catch (exception e) {<br/> throw E; <br/>}finally {</P> <p >}< br/>}</P> <p>/** <br/> * hash algorithm <br /> * <br/> * @ Param bytesource <br/> * data to be hashed <br/> * @ return data to be hashed <br/> * @ throws exception <br/> */<br/> Public static byte [] hashmethod (byte [] bytesource) throws exception {<br/> try {<br/> messagedigest currentalgorithm = messagedigest. getinstance ("SHA-1"); <br/> currentalgorithm. reset (); <br/> currentalgorithm. update (bytesource); <br/> return currentalgorithm. digest (); <br/>}catch (exception e) {<br/> throw E; <br/>}</P> <p>/** <br/> * encrypts the srcfile file and outputs it to the distfile. <br/> * <br/> * @ Param srcfile <br/> * plaintext file <br/> * @ Param distfile <br/> * encrypted file <br/> * @ throws exception <br/> */<br/> Public static void encryptfile (string srcfile, string distfile) <br/> throws exception {</P> <p> inputstream is = NULL; <br/> outputstream out = NULL; <br/> cipherinputstream CIS = NULL; <br/> try {<br/> int mode = cipher. encrypt_mode; <br/> secretkeyfactory keyfactory = secretkeyfactory. getinstance ("des"); <br/> byte [] keydata = skey. getbytes (); <br/> deskeyspec keyspec = new deskeyspec (keydata); <br/> key = keyfactory. generatesecret (keyspec); <br/> cipher = cipher. getinstance ("des"); <br/> cipher. init (mode, key); <br/> is = new fileinputstream (srcfile); <br/> out = new fileoutputstream (distfile ); <br/> CIS = new cipherinputstream (is, cipher); <br/> byte [] buffer = new byte [1024]; <br/> int R; <br/> while (r = CIs. read (buffer)> 0) {<br/> out. write (buffer, 0, R); <br/>}< br/>} catch (exception e) {<br/> throw E; <br/>} finally {<br/> CIs. close (); <br/> is. close (); <br/> out. close (); <br/>}</P> <p>/** <br/> * decrypt the srcfile file to the target file distfile. <br/> * <br/> * @ Param srcfile <br/> * ciphertext file <br/> * @ Param distfile <br/> * decrypted file <br/> * @ throws exception <br/> */<br/> Public static void decryptfile (string srcfile, string distfile) <br/> throws exception {</P> <p> inputstream is = NULL; <br/> outputstream out = NULL; <br/> cipheroutputstream cos = NULL; <br/> try {<br/> int mode = cipher. decrypt_mode; <br/> secretkeyfactory keyfactory = secretkeyfactory. getinstance ("des"); <br/> byte [] keydata = skey. getbytes (); <br/> deskeyspec keyspec = new deskeyspec (keydata); <br/> key = keyfactory. generatesecret (keyspec); <br/> cipher = cipher. getinstance ("des"); <br/> cipher. init (mode, key); <br/> byte [] buffer = new byte [1024]; <br/> is = new fileinputstream (srcfile ); <br/> out = new fileoutputstream (distfile); <br/> CoS = new cipheroutputstream (Out, cipher); </P> <p> int R; <br/> while (r = is. read (buffer)> = 0) {<br/> CoS. write (buffer, 0, R); <br/>}</P> <p >}catch (exception e) {<br/> throw E; <br/>} finally {<br/> CoS. close (); <br/> is. close (); <br/> out. close (); <br/>}</P> <p>/** <br/> * encrypts 64-bit files. <br/> * <br/> * @ Param srcfile <br/> * Source File <br/> * @ Param distfile <br/> * target file <br/> */<br/> Public static void base64encoderfile (string srcfile, string distfile) {<br/> inputstream = NULL; <br/> outputstream out = NULL; <br/> try {<br/> inputstream = new fileinputstream (srcfile ); </P> <p> out = new fileoutputstream (distfile); <br/> byte [] buffer = new byte [1024]; <br/> while (inputstream. read (buffer)> 0) {<br/> out. write (ebotongencrypto (buffer); <br/>}< br/>} catch (filenotfoundexception E) {<br/> // todo auto-generated Catch Block <br/> E. printstacktrace (); <br/>} catch (ioexception e) {<br/> // todo auto-generated Catch Block <br/> E. printstacktrace (); <br/>}finally {<br/> try {<br/> out. close (); <br/> inputstream. close (); <br/>}catch (ioexception e) {<br/> // todo auto-generated Catch Block <br/> E. printstacktrace (); <br/>}</P> <p>/** <br/> * decrypts the file 64-bit decoding <br/> * @ Param srcfile <br/> * Source File <br/> * @ Param distfile <br/> * target file <br/> */<br/> Public static void base64decoderfile (string srcfile, string distfile) {<br/> inputstream = NULL; <br/> outputstream out = NULL; <br/> try {<br/> inputstream = new fileinputstream (srcfile ); </P> <p> out = new fileoutputstream (distfile); <br/> byte [] buffer = new byte [1412]; </P> <p> while (inputstream. read (buffer)> 0) {<br/> out. write (ebotongdecrypto (buffer); <br/>}< br/>} catch (filenotfoundexception E) {<br/> // todo auto-generated Catch Block <br/> E. printstacktrace (); <br/>} catch (ioexception e) {<br/> // todo auto-generated Catch Block <br/> E. printstacktrace (); <br/>}finally {<br/> try {<br/> out. close (); <br/> inputstream. close (); <br/>}catch (ioexception e) {<br/> // todo auto-generated Catch Block <br/> E. printstacktrace (); <br/>}</P> <p >}< br/>}</P> <p> // This article is from the csdn blog, reprinted please indicate the source: http://blog.csdn.net/Harry_hua/archive/2010/12/02/6050364.aspxExample: file encryption (for file encryption, rather than file content ):
Public static void encode () {</P> <p> file = new file (fatherdirecoryname + zipdirecoryname); <br/> // determines whether a folder exists, if not, create a folder <br/> If (! File. exists () {<br/> file. mkdir (); <br/> system. out. println ("zip file creation"); <br/>} else {<br/> system. out. println ("zip file exists,"); <br/> file. delete (); <br/> system. out. print ("delete file,"); <br/> file. mkdir (); <br/> system. out. print ("File Creation"); <br/>}< br/> try {<br/> descoder. encryptfile (fatherdirecoryname + srcdirecoryname <br/> + info_file_name_meijiami, fatherdirecoryname <br/> + zipdirecoryname + info_file_name_jiami); <br/> descoder. encryptfile (fatherdirecoryname + srcdirecoryname <br/> + example, fatherdirecoryname <br/> + zipdirecoryname + input_file_name_jiami); <br/> descoder. encryptfile (fatherdirecoryname + srcdirecoryname <br/> + example, fatherdirecoryname <br/> + zipdirecoryname + output_file_name_jiami); <br/> descoder. encryptfile (fatherdirecoryname + srcdirecoryname <br/> + example, fatherdirecoryname <br/> + zipdirecoryname + all_table_file_name_jiami); <br/>} catch (exception E) {<br/> // todo auto-generated Catch Block <br/> E. printstacktrace (); <br/>}< br/>}
Example: file decryption (for file decryption, rather than file content ):
Public static void decode () {<br/> file = new file (fatherdirecoryname + srcdirecoryname); <br/> // you can check whether a folder exists, if not, create a folder <br/> If (! File. exists () {<br/> file. mkdir (); <br/> system. out. println ("src File Creation"); <br/>} else {<br/> system. out. println ("src file exists,"); <br/> file. delete (); <br/> system. out. print ("delete file,"); <br/> file. mkdir (); <br/> system. out. print ("File Creation"); <br/>}</P> <p> try {<br/> descoder. decryptfile (fatherdirecoryname + zipdirecoryname <br/> + info_file_name_jiami, fatherdirecoryname <br/> + srcdirecoryname + info_file_name_meijiami); <br/> descoder. decryptfile (fatherdirecoryname + zipdirecoryname <br/> + input_file_name_jiami, fatherdirecoryname <br/> + srcdirecoryname + secret); <br/> descoder. decryptfile (fatherdirecoryname + zipdirecoryname <br/> + output_file_name_jiami, fatherdirecoryname <br/> + srcdirecoryname + secret); <br/> descoder. decryptfile (fatherdirecoryname + zipdirecoryname <br/> + all_table_file_name_jiami, fatherdirecoryname <br/> + srcdirecoryname + callback); <br/>} catch (exception E) {<br/> // todo auto-generated Catch Block <br/> E. printstacktrace (); <br/>}< br/>}