夢幻之旅
DEBUG - 天道酬勤
::
首頁
::
新隨筆
::
聯系
::
聚合
::
管理
::
671 隨筆 :: 6 文章 :: 256 評論 :: 0 Trackbacks
<
2010年5月
>
日
一
二
三
四
五
六
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
公告
本博客中未注原創的文章均為轉載,對轉載內容可能做了些修改和增加圖片注釋,如果侵犯了您的版權,或沒有注明原作者,請諒解
常用鏈接
我的隨筆
我的評論
我的參與
最新評論
留言簿
(21)
給我留言
查看公開留言
查看私人留言
隨筆分類
(644)
Android(10)
(rss)
ANT(4)
(rss)
C#(10)
(rss)
C/C++(16)
(rss)
CSS(3)
(rss)
DataBase(119)
(rss)
DB-DailyMmaintenance(16)
(rss)
Design Patterns(27)
(rss)
english
(rss)
Exceptions(7)
(rss)
EXT(39)
(rss)
FLASH(9)
(rss)
Hardware(20)
(rss)
Hibernate(13)
(rss)
Html(23)
(rss)
Java(143)
(rss)
java Net(10)
(rss)
JavaScript(39)
(rss)
Linux(26)
(rss)
php(5)
(rss)
Regular Exp(3)
(rss)
Spring(17)
(rss)
Struts(12)
(rss)
TOOL(43)
(rss)
VB/VBA/VBS(5)
(rss)
webservice(9)
(rss)
XML(2)
(rss)
我的夢幻旅途(14)
(rss)
隨筆檔案
(669)
2017年9月 (4)
2016年10月 (1)
2015年6月 (1)
2015年4月 (2)
2015年1月 (1)
2014年8月 (2)
2014年7月 (9)
2014年6月 (1)
2014年5月 (2)
2014年4月 (3)
2014年3月 (3)
2013年10月 (4)
2013年9月 (8)
2013年8月 (4)
2013年6月 (3)
2013年5月 (4)
2013年4月 (7)
2013年3月 (1)
2013年1月 (3)
2012年12月 (4)
2012年11月 (1)
2012年10月 (1)
2012年9月 (4)
2012年8月 (1)
2012年7月 (2)
2012年6月 (1)
2012年5月 (4)
2012年4月 (2)
2012年3月 (1)
2012年2月 (4)
2012年1月 (6)
2011年12月 (10)
2011年11月 (7)
2011年10月 (6)
2011年9月 (37)
2011年8月 (34)
2011年7月 (44)
2011年6月 (10)
2011年5月 (5)
2011年4月 (3)
2011年3月 (1)
2011年2月 (1)
2011年1月 (18)
2010年12月 (9)
2010年11月 (13)
2010年10月 (17)
2010年9月 (2)
2010年8月 (10)
2010年7月 (10)
2010年6月 (5)
2010年5月 (8)
2010年4月 (9)
2010年3月 (11)
2010年2月 (3)
2010年1月 (8)
2009年12月 (6)
2009年11月 (10)
2009年10月 (5)
2009年9月 (1)
2009年8月 (18)
2009年7月 (6)
2009年6月 (2)
2009年5月 (1)
2009年4月 (4)
2009年3月 (6)
2009年2月 (5)
2009年1月 (3)
2008年12月 (13)
2008年11月 (13)
2008年10月 (30)
2008年9月 (9)
2008年8月 (24)
2008年7月 (17)
2008年6月 (15)
2008年5月 (16)
2008年4月 (15)
2008年3月 (19)
2008年2月 (3)
2008年1月 (20)
2007年12月 (24)
2007年11月 (9)
文章檔案
(6)
2008年4月 (1)
2008年3月 (1)
2008年1月 (2)
2007年11月 (2)
最新隨筆
1.?PP代碼生成器(四) 使用解決方案生成代碼
2.? PP代碼生成器(三) 設計freemarker模板, 創建解決方案
3.? PP代碼生成器(二) 解決方案, 生成任務, 輔助設計面板
4.? PP代碼生成器(一) 簡介, 下載, 運行
5.?PP持久層代碼生成器
6.?比較好的博客
7.?系統集成項目管理工程師
8.?軟件公司項目經理崗位職責
9.?聯想筆記本 顯示屏 鍵盤失靈 釋放靜電
10.?eclipse maven
積分與排名
積分 - 960880
排名 - 37
最新評論
1.?re: Myeclipse 快捷鍵大全(絕對全)
crl+向右箭頭(輸入法有問題打不出來)移到下一個參數的位置,然后crl+shift+向右箭頭 選中該位置的參數即可
--紅領巾
2.?re: Log4j基本使用方法
555
--555
3.?re: Myeclipse 快捷鍵大全(絕對全)[未登錄]
很不錯,謝謝
--銀狐
4.?re: Flex 表單
是誰這么無聊~嗚~~~
--HUIKK
5.?re: Spring AfterReturning 異常
具體是什么意思啊
--dingli
閱讀排行榜
1.?Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream(70034)
2.?log4j.properties 使用說明(42086)
3.?Myeclipse 快捷鍵大全(絕對全)(32737)
4.?TNSNAMES.ORA 配置(24399)
5.?oracle 樹狀查詢(21367)
評論排行榜
1.?Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream(53)
2.?JMail 異常: java.lang.NoClassDefFoundError: javax/activation/DataSource(21)
3.?javax.mail.MessagingException: 530 5.7.0 Must issue a STARTTLS command first(14)
4.?java 讀取 excel 2003 或 excel 2007(14)
5.?java.lang.UnsupportedClassVersionError: Bad version number in .class file(8)
非對稱加密
package
com.roadway.sms.dao.test;
import
java.security.KeyFactory;
import
java.security.KeyPair;
import
java.security.KeyPairGenerator;
import
java.security.PrivateKey;
import
java.security.PublicKey;
import
java.security.spec.PKCS8EncodedKeySpec;
import
java.security.spec.X509EncodedKeySpec;
import
javax.crypto.Cipher;
public
class
RSAUtil
{
public
static
void
main(String[] args)
throws
Exception
{
String[] ppk
=
RSAUtil.getKeyPair();
System.out.println(
"
公鑰:
"
+
ppk[
0
]);
System.out.println(
"
私鑰:
"
+
ppk[
1
]);
String content
=
"
123456惠萬鵬~!@#$%^&*()_+|
"
;
System.out.println(
"
原字符串:
"
+
content);
String encryptStr
=
RSAUtil.encrypt(ppk[
0
], content);
System.out.println(
"
加密后字符串:
"
+
encryptStr);
String decryptStr
=
RSAUtil.decrypt(ppk[
1
], encryptStr);
System.out.println(
"
解密后字符串:
"
+
decryptStr);
}
public
static
String[] getKeyPair()
{
String[] publicPrivateKey
=
{
null
,
null
}
;
try
{
KeyPairGenerator keyPairGenerator
=
KeyPairGenerator.getInstance(
"
RSA
"
);
keyPairGenerator.initialize(
1024
);
KeyPair keyPair
=
keyPairGenerator.genKeyPair();
publicPrivateKey[
0
]
=
parseByte2HexStr(keyPair.getPublic().getEncoded());
publicPrivateKey[
1
]
=
parseByte2HexStr(keyPair.getPrivate().getEncoded());
}
catch
(Exception ex)
{
ex.printStackTrace();
}
return
publicPrivateKey;
}
public
static
String encrypt(String publicKeyCode, String content)
{
String encryptRes
=
null
;
try
{
Cipher cipher
=
Cipher.getInstance(
"
RSA
"
);
X509EncodedKeySpec keySpec
=
new
X509EncodedKeySpec(RSAUtil.parseHexStr2Byte(publicKeyCode));
KeyFactory keyFactory
=
KeyFactory.getInstance(
"
RSA
"
);
PublicKey pubKey
=
keyFactory.generatePublic(keySpec);
cipher.init(Cipher.ENCRYPT_MODE, pubKey);
byte
[] publicKeyEncryptText
=
cipher.doFinal(content.getBytes());
encryptRes
=
parseByte2HexStr(publicKeyEncryptText);
}
catch
(Exception ex)
{
ex.printStackTrace();
}
return
encryptRes;
}
public
static
String decrypt(String privateKeyCode, String content)
{
String decryptRes
=
null
;
try
{
Cipher cipher
=
Cipher.getInstance(
"
RSA
"
);
PKCS8EncodedKeySpec pkcs8KeySpec
=
new
PKCS8EncodedKeySpec(RSAUtil.parseHexStr2Byte(privateKeyCode));
KeyFactory keyFactory2
=
KeyFactory.getInstance(
"
RSA
"
);
PrivateKey priKey
=
keyFactory2.generatePrivate(pkcs8KeySpec);
cipher.init(Cipher.DECRYPT_MODE, priKey);
byte
[] privateKeyDecryptText
=
cipher.doFinal(RSAUtil.parseHexStr2Byte(content));
decryptRes
=
new
String(privateKeyDecryptText);
}
catch
(Exception ex)
{
ex.printStackTrace();
}
return
decryptRes;
}
private
static
String parseByte2HexStr(
byte
buf[])
{
StringBuffer sb
=
new
StringBuffer();
for
(
int
i
=
0
; i
<
buf.length; i
++
)
{
String hex
=
Integer.toHexString(buf[i]
&
0xFF
);
if
(hex.length()
==
1
)
{
hex
=
'
0
'
+
hex;
}
sb.append(hex.toUpperCase());
}
return
sb.toString();
}
private
static
byte
[] parseHexStr2Byte(String hexStr)
{
if
(hexStr.length()
<
1
)
return
null
;
byte
[] result
=
new
byte
[hexStr.length()
/
2
];
for
(
int
i
=
0
; i
<
hexStr.length()
/
2
; i
++
)
{
int
high
=
Integer.parseInt(hexStr.substring(i
*
2
, i
*
2
+
1
),
16
);
int
low
=
Integer.parseInt(hexStr.substring(i
*
2
+
1
, i
*
2
+
2
),
16
);
result[i]
=
(
byte
) (high
*
16
+
low);
}
return
result;
}
}
posted on 2010-05-28 16:31
HUIKK
閱讀(269)
評論(0)
編輯
收藏
所屬分類:
Java
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關文章:
PP代碼生成器(四) 使用解決方案生成代碼
PP代碼生成器(三) 設計freemarker模板, 創建解決方案
PP代碼生成器(二) 解決方案, 生成任務, 輔助設計面板
PP代碼生成器(一) 簡介, 下載, 運行
PP持久層代碼生成器
eclipse maven
平衡二叉樹,java實現
數據結構復習
萬能分頁標簽
優化Servlet配置為web.xml瘦身
Powered by:
BlogJava
Copyright © HUIKK
主站蜘蛛池模板:
三台县
|
昭平县
|
盘锦市
|
无锡市
|
河间市
|
光泽县
|
宾阳县
|
延吉市
|
沙河市
|
西藏
|
新乐市
|
四子王旗
|
大冶市
|
庄河市
|
丹阳市
|
宝应县
|
星子县
|
当涂县
|
靖边县
|
肇州县
|
溧阳市
|
麻城市
|
淮滨县
|
建昌县
|
丰都县
|
乌恰县
|
兴义市
|
桦甸市
|
瑞安市
|
桃园县
|
濮阳县
|
鄂温
|
阿尔山市
|
钟祥市
|
昭苏县
|
石门县
|
申扎县
|
南皮县
|
白沙
|
阿拉尔市
|
元朗区
|