Java encryption and decryption program implementation

Source: Internet
Author: User
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/>}

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.