目錄介紹
2.對稱加密和非對稱加密
3.關於單向加密
4.加密和解密**展示
5.rsa非對稱加解密
1.1 問答環節
1.2 加解密概況2.1 什麼是對稱加密
2.2 什麼是非對稱加密
2.3 常見對稱加密有什麼
2.4 常見非對稱加密有什麼
2.5 非對稱加密用途
陌生人通訊
支付寶支付加密
4.1 des加密和解密【對稱加密】
private final string desencryptstring = "yangchong";
private final string desencryptkey = "19930311";
s1 = des.encryptdes(desencryptstring, desencryptkey);
log.e("加密和解密", s1);
加密和解密: 84r1gs+d3op8yrsnf5zdrq==
//s1為加密後的密文
解密過程
string s2 = des.decryptdes(s1, desencryptkey);
log.e("加密和解密", s2);
//加密和解密: yangchong
android中實現des加密和解密的核心**如下
public class des ;
/***
* @param encryptstring 明文
* @param encryptkey 金鑰
* @return 加密後的密文
*/public static string encryptdes(string encryptstring,string encryptkey) catch (nosuchalgorithmexception e) catch (nosuchpaddingexception e) catch (invalidalgorithmparameterexception e) catch (invalidkeyexception e) catch (badpaddingexception e) catch (illegalblocksizeexception e)
return null;
}/**
* 解密的過程與加密的過程大致相同
* @param decryptstring 密文
* @param decryptkey 金鑰
* @return 返回明文
*/public static string decryptdes(string decryptstring,string decryptkey) catch (nosuchalgorithmexception e) catch (nosuchpaddingexception e) catch (invalidalgorithmparameterexception e) catch (invalidkeyexception e) catch (badpaddingexception e) catch (illegalblocksizeexception e)
return null;
}}
4.2 aes解密和解密【對稱加密】public class aes
//解密函式。key值必須和加密時的key一致
public static string decrypt(string key, string encrypted) throws exception
}private static byte getrawkey(byte seed) throws exception else
sr.setseed(seed);
kgen.init(256, sr); // 256位或128位或192位
secretkey skey = kgen.generatekey();
byte raw = skey.getencoded();
return raw;
}private static byte encrypt(byte key, byte src) throws exception
private static byte decrypt(byte key, byte encrypted) throws exception
private static byte tobyte(string hexstring)
return result;
}private static string tohex(byte buf)
stringbuffer result = new stringbuffer(2 * buf.length);
for (int i = 0; i < buf.length; i++)
return result.tostring();
}}
5.1 公鑰加密,私鑰解密//秘鑰預設長度
public static final int default_key_size = 2048;
keypair keypair = rsa.generatersakeypair(default_key_size);
if (keypair != null)
第二步:公鑰加密
//用公鑰對字串進行加密
try catch (exception e)
第三步:私鑰解密
//使用私鑰進行解密
try catch (exception e)
5.2 私鑰加密,公鑰解密
//秘鑰預設長度
public static final int default_key_size = 2048;
keypair keypair = rsa.generatersakeypair(default_key_size);
if (keypair != null)
第二步:私鑰加密
//使用私鑰加密
try catch (exception e)
第三步:公鑰解密
//使用公鑰解密
try catch (exception e)
5.3 完整工具類**
5.4 注意rsa加密填充方式
5.5 rsa加密內容長度限制問題
5.6 加解密效率測試
//秘鑰預設長度
public static final int default_key_size = 2048;
keypair keypair = rsa.generatersakeypair(default_key_size);
if (keypair != null)
第二步:用公鑰對物件進行加密
//用公鑰對物件進行加密
yc yc = new yc();
yc.setage(25);
yc.setname("楊充");
stringbuilder stringbuilder = new stringbuilder();
for(int a=0 ; a<500 ; a++)
yc.setinfo(stringbuilder.tostring());
string string = yc.tostring();
long start = system.currenttimemillis();
encryptbytes = new byte[0];
try catch (exception e)
long end=system.currenttimemillis();
log.e("yc","公鑰加密耗時 cost time---->"+(end-start));
string encrystr = new string(encryptbytes);
log.e("yc","加密前資料長度 --1-->"+string.length());
log.e("yc","加密後資料長度 --1-->"+encrystr.length());
第三步:使用私鑰進行解密
//使用私鑰進行解密
long start2 = system.currenttimemillis();
byte decryptbytes= new byte[0];
try catch (exception e)
string decrystr = new string(decryptbytes);
long end2 =system.currenttimemillis();
log.e("yc","私鑰解密耗時 cost time---->"+(end2-start2));
log.e("yc","解密後資料 --1-->"+decrystr);
第四步:加密和解密效率比較
5.7 分段加密解密工具類**01.關於部落格彙總鏈結
02.關於我的部落格
加密和解密
public class desc public static string decode string data catch descryptoserviceprovider cryptoprovider new descryptoserviceprovider memorystream ms n...
加密和解密
公鑰密碼體制的核心思想是 加密和解密採用不同的金鑰。這是公鑰密碼體制和傳統對稱密碼體制的最大區別。對於傳統對稱密碼而言,密文的安全性完全依賴於金鑰的保密性,一旦金鑰洩露,將毫無保密性可言。但是公鑰密碼體制徹底改變了這樣狀況,在公鑰密碼體制中,公鑰是公開的,只有私鑰是保密的,知道公鑰和密碼演算法要推測...
加密和解密
加密和解密主要是為了實現能在訊息的接受方和訊息的傳送方之間在不安全的網路上面實現訊息的安全傳遞。怎麼才算安全傳遞?那麼怎麼樣才能叫安全呢?訊息在接收方和傳送方進行安全傳遞,一般要滿足下面三個要點 訊息的傳送方能夠確定訊息只有預期的接收方可以解密 不保證第三方無法獲得,但保證第三方無法解密 訊息的接收...