Java常見加密和解密演算法

2021-08-28 10:01:23 字數 4289 閱讀 3206

/**

* byte hex utility class

**/public class bytehexutils

return bf.array();

}/**

* @param bytes

**/public static string bytes2hex(byte bytes)

return result;

}}

/**

* base64 utility class

**/import sun.misc.base64decoder;

import sun.misc.base64encoder;

public class base64utils

/*** base64 to byte

**/public static byte decode(string base64) throws ioexception

public static void main(string args) throws ioexception

}

/**

* digest utility class with md5 and sha-1

**/public static class digestsutils

/*** sha-1; encrypt without iterations

** @param bytes encrypt byte array

* @param salt encrypt salt

**/public static byte sha1(byte bytes, byte salt)

/*** sha-1;

** @param bytes encrypt byte array

* @param salt encrypt salt

* @param iterations encrypt iterations

**/public static byte sha1(byte bytes, byte salt, int iterations)

/*** md5

**/public static byte md5(byte bytes)

/*** md5

**/public static byte md5(byte bytes, byte salt)

/*** md5

**/public static byte md5(byte bytes, byte salt, int iterations)

/*** 對salt生成的位元組是平台預設編碼

** @see charset#defaultcharset()

**/public static byte generatesalt()

/*** digest encode md5

** @param newstr new str

* @param oldmd5 old md5 bytes

* @param salt md5 salt

* @param iterations md5 digest iterations

* @see arrays

**/public static boolean decodemd5(byte newstr, byte oldmd5, byte salt, int iterations)

/*** digest encode sha-1

** @param newstr new str

* @param oldsha1 old sha-1 bytes

* @param salt sha-1 salt

* @param iterations sha-1 digest iterations

* @see arrays

**/public static boolean decodesha1(byte newstr, byte oldsha1, byte salt, int iterations)

/*** digest encode

** @param newstr new str

* @param olddigest old digest bytes

* @param salt md5 salt

* @param iterations md5 digest iterations

* @see arrays

**/private static boolean decode(string algorithm, byte newstr, byte olddigest, byte salt, int iterations) ", bytehexutils.bytes2hex(newdigest));

if (arrays.equals(newdigest, olddigest)) else

} else ", bytehexutils.bytes2hex(newdigest));

if (arrays.equals(newdigest, olddigest)) else }}

/*** digest with salt and iterations

**/private static byte digest(byte bytes, string algorithm, byte salt, int iterations)

byte result = e.digest(bytes);

for (int i = 1; i < iterations; ++i)

return result;

} catch (generalsecurityexception e)

return null;

}public static void main(string args) else

byte sha1 = digestsutils.sha1(teststring.getbytes());

system.out.println(bytehexutils.bytes2hex(sha1));

if (digestsutils.decodesha1("123456".getbytes(), sha1, null, 1)) else

}}

在這裡插入**片

``` /**

* rsa utility class

**/public static class rsautils ,並生成,

* 得到,便可以通過getpublic和getprivate分別獲取

* 公鑰和私鑰.為了方便儲存,將其使用base64編碼轉換為string型別的列印字元

**/public static keypair getkeypair() throws exception

/*** get public key

** @see base64utils#encode(byte)

**/public static string getpublickeystr(keypair keypair)

/*** get primary key

** @see base64utils#encode(byte)

**/public static string getprivatekeystr(keypair keypair)

/*** 將string型別的金鑰轉換為publickey和privatekey物件

**/public static publickey string2publickey(string publickeystr) throws exception

/*** 將string型別的金鑰轉換為

**/public static privatekey string2privatekey(string privatekeystr) throws exception

/*** 使用公鑰加密

**/public static byte publicencrypt(byte content, publickey publickey) throws exception

/*** 使用私鑰解密

**/public static byte privatedecrypt(byte content, privatekey privatekey) throws exception

public static void main(string args) throws exception

}

加密和解密

public class desc public static string decode string data catch descryptoserviceprovider cryptoprovider new descryptoserviceprovider memorystream ms n...

加密和解密

公鑰密碼體制的核心思想是 加密和解密採用不同的金鑰。這是公鑰密碼體制和傳統對稱密碼體制的最大區別。對於傳統對稱密碼而言,密文的安全性完全依賴於金鑰的保密性,一旦金鑰洩露,將毫無保密性可言。但是公鑰密碼體制徹底改變了這樣狀況,在公鑰密碼體制中,公鑰是公開的,只有私鑰是保密的,知道公鑰和密碼演算法要推測...

加密和解密

目錄介紹 2.對稱加密和非對稱加密 3.關於單向加密 4.加密和解密 展示 5.rsa非對稱加解密 1.1 問答環節 1.2 加解密概況2.1 什麼是對稱加密 2.2 什麼是非對稱加密 2.3 常見對稱加密有什麼 2.4 常見非對稱加密有什麼 2.5 非對稱加密用途 陌生人通訊 支付寶支付加密 4....