﻿<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>亲亲宝宝</title>
	<atom:link href="http://www.wenhq.com/feed" rel="self" type="application/rss+xml" />
	<link>http://www.wenhq.com</link>
	<description>记录宝宝成长文章和软件开发经验笔记</description>
	<lastBuildDate>Tue, 10 Apr 2012 11:18:15 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>mysql 多表关联更新/删除</title>
		<link>http://www.wenhq.com/article/view_723.html</link>
		<comments>http://www.wenhq.com/article/view_723.html#comments</comments>
		<pubDate>Tue, 10 Apr 2012 11:18:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[数据库]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://www.wenhq.com/article/view_723.html</guid>
		<description><![CDATA[1、mysql 多表关联delete中使用别名，tblwenhq是真实的表名，a是tblwenhq的别名,b是另一个表名
DELETE  a FROM tblwenhq a,b where a.id=b.id
2、使用mysql进行delete from操作时，若子查询的 FROM 字句和更新/删除对象使用同一张表，会出现错误。
DELETE FROM tab1 WHERE col1 = ( SELECT MAX( col1 ) FROM tab1 );
ERROR 1093 (HY000): You can’t specify target table ‘tab1′ for update in FROM clause
正确用法：DELETE FROM tab1 WHERE col1 = ( SELECT MAX( col1 ) FROM tab1 as a);
3、mysql多表关联更新update
UPDATE b,a SET b.public=a.public WHERE [...]]]></description>
			<content:encoded><![CDATA[<p>1、mysql 多表关联delete中使用别名，tblwenhq是真实的表名，a是tblwenhq的别名,b是另一个表名</p>
<p>DELETE  a FROM tblwenhq a,b where a.id=b.id</p>
<p>2、使用mysql进行delete from操作时，若子查询的 FROM 字句和更新/删除对象使用同一张表，会出现错误。</p>
<p>DELETE FROM tab1 WHERE col1 = ( SELECT MAX( col1 ) FROM tab1 );</p>
<p>ERROR 1093 (HY000): You can’t specify target table ‘tab1′ for update in FROM clause</p>
<p>正确用法：DELETE FROM tab1 WHERE col1 = ( SELECT MAX( col1 ) FROM tab1 as a);</p>
<p>3、mysql多表关联更新update</p>
<p>UPDATE b,a SET b.public=a.public WHERE b.id=a.id</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wenhq.com/article/view_723.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>阎维文的夫妻情歌词</title>
		<link>http://www.wenhq.com/article/view_722.html</link>
		<comments>http://www.wenhq.com/article/view_722.html#comments</comments>
		<pubDate>Sat, 25 Feb 2012 06:58:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[生活感悟]]></category>

		<guid isPermaLink="false">http://www.wenhq.com/?p=722</guid>
		<description><![CDATA[你也有情，我也有情，
人世间最莫过携手夫妻情。
说的是家里话，
道的是恩爱情，
在风中在雨中，
磕磕绊绊过一生。
啊，夫妻情是不了情，
相濡以沫伴终生，
莫道岁月催人老，
携手迎来夕阳红。
天也有情，地也有情，
天地间最莫过携手夫妻情。
想的是苦中乐，
求的是事业成，
富也好贫也好，
患难与共同路行。
啊，夫妻情是不了情，
相濡以沫伴终生，
莫道岁月催人老，
携手迎来夕阳红。
]]></description>
			<content:encoded><![CDATA[<p>你也有情，我也有情，<br />
人世间最莫过携手夫妻情。<br />
说的是家里话，<br />
道的是恩爱情，<br />
在风中在雨中，<br />
磕磕绊绊过一生。<br />
啊，夫妻情是不了情，<br />
相濡以沫伴终生，<br />
莫道岁月催人老，<br />
携手迎来夕阳红。</p>
<p>天也有情，地也有情，<br />
天地间最莫过携手夫妻情。<br />
想的是苦中乐，<br />
求的是事业成，<br />
富也好贫也好，<br />
患难与共同路行。<br />
啊，夫妻情是不了情，<br />
相濡以沫伴终生，<br />
莫道岁月催人老，<br />
携手迎来夕阳红。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wenhq.com/article/view_722.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>治疗脾气急躁、爱生闷气的办法</title>
		<link>http://www.wenhq.com/article/view_721.html</link>
		<comments>http://www.wenhq.com/article/view_721.html#comments</comments>
		<pubDate>Mon, 20 Feb 2012 00:08:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[生活感悟]]></category>
		<category><![CDATA[闲话]]></category>

		<guid isPermaLink="false">http://www.wenhq.com/?p=721</guid>
		<description><![CDATA[“攥拳怒目增气力”，把双手攥成拳头，然后发出怒光就会增加元气。发现凡是脾气急躁、爱生闷气的患者，在坚持练习这个养生法几个月后，脾气都有了很大的改变。
“攥拳怒目增气力”的养生法，简单而有效：只要自己攥紧两拳，那么，全身就会不由自主地产生轻微的收敛、升提之意，您会觉得似乎涣散的气息重新凝聚到一起，精神为之一振。难怪当代人有个口头语叫做“提气”，意思是很让人振奋。
有人会觉得奇怪：这个养生法还有一个“怒目”的动作，难道让人在攥拳的同时，还要发怒瞪眼吗？您可千万别误会，在中国古代，怒目也常当振奋的意思讲，如果人的元气虚弱、涣散，整个人就会有种松垮、虚脱之像，而依靠振奋的怒目（即双眼圆睁），就能产生振奋元气的殊效！
“八段锦”是很多名老中医用于自我养生的方法，安全而有效，所以，我就让母亲每天随时随地坚持练习这个“攥拳怒目增气力”。为了更加方便母亲习练，我把这个方法稍作改良，称之为“八段微提养气法”：意念中全身微微提气，同时双手用力攥拳。在紧攥的过程中，会不由自主地“怒目”（双眼圆睁），并感觉到全身的气息内敛、升提。紧攥一下就可以了，然后，松开拳头、全身放松，再做第二下“微提养气”。每天做上个几十次（以自己感觉舒服为准，不具体规定次数），就可以随时随地大补元气。
为什么很多身体不好的人时常易怒发火呢？大多是因为肝气郁结，气郁化火。而“微提养气法”的攥拳怒目，是一种“文明的宣泄”途径。李大爷每天练习“微提养气法”，又是攥拳又是怒目，早就把脾气（肝火）悄悄发泄掉了，可以说，“八段微提养生法”也是极好的护肝养生法。
]]></description>
			<content:encoded><![CDATA[<p>“攥拳怒目增气力”，把双手攥成拳头，然后发出怒光就会增加元气。发现凡是脾气急躁、爱生闷气的患者，在坚持练习这个养生法几个月后，脾气都有了很大的改变。<br />
“攥拳怒目增气力”的养生法，简单而有效：只要自己攥紧两拳，那么，全身就会不由自主地产生轻微的收敛、升提之意，您会觉得似乎涣散的气息重新凝聚到一起，精神为之一振。难怪当代人有个口头语叫做“提气”，意思是很让人振奋。<br />
有人会觉得奇怪：这个养生法还有一个“怒目”的动作，难道让人在攥拳的同时，还要发怒瞪眼吗？您可千万别误会，在中国古代，怒目也常当振奋的意思讲，如果人的元气虚弱、涣散，整个人就会有种松垮、虚脱之像，而依靠振奋的怒目（即双眼圆睁），就能产生振奋元气的殊效！<br />
“八段锦”是很多名老中医用于自我养生的方法，安全而有效，所以，我就让母亲每天随时随地坚持练习这个“攥拳怒目增气力”。为了更加方便母亲习练，我把这个方法稍作改良，称之为“八段微提养气法”：意念中全身微微提气，同时双手用力攥拳。在紧攥的过程中，会不由自主地“怒目”（双眼圆睁），并感觉到全身的气息内敛、升提。紧攥一下就可以了，然后，松开拳头、全身放松，再做第二下“微提养气”。每天做上个几十次（以自己感觉舒服为准，不具体规定次数），就可以随时随地大补元气。</p>
<p>为什么很多身体不好的人时常易怒发火呢？大多是因为肝气郁结，气郁化火。而“微提养气法”的攥拳怒目，是一种“文明的宣泄”途径。李大爷每天练习“微提养气法”，又是攥拳又是怒目，早就把脾气（肝火）悄悄发泄掉了，可以说，“八段微提养生法”也是极好的护肝养生法。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wenhq.com/article/view_721.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>幸福生活哲言</title>
		<link>http://www.wenhq.com/article/view_720.html</link>
		<comments>http://www.wenhq.com/article/view_720.html#comments</comments>
		<pubDate>Wed, 15 Feb 2012 00:03:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[生活感悟]]></category>
		<category><![CDATA[生活哲理]]></category>
		<category><![CDATA[闲话]]></category>

		<guid isPermaLink="false">http://www.wenhq.com/?p=720</guid>
		<description><![CDATA[钱多了会压死你，你承受得了吗？带，带不走，放，放不下。
时时刻刻发悲心，饶益众生为他人。
信佛是信因果，如果你真的信因果，就不会有想不通的事。
好和坏都是自己的心，如果不执着了，一切都是好的，坏的也会变好，如果执着了，看什么都不好，好的也会变坏了。
心情好了，你的身体、工作、家庭都会好。
时时刻刻观照自己的心就是念心，时时刻刻调整自己的心态就是修心。
要容纳，好坏都能容纳，要圆融，凡事都能圆融。
什么是吉祥圆满？身心健康、工作顺利、家庭和睦就是吉祥圆满。
不能欠别人，只能还别人，多干点有什么？少说一句能怎样？
财福不是真正的福，法福才是真正的福。
放下，是放下妄想和执着，并不是放弃责任和义务。
爱不是信命得来的侥幸，要付出和成长。 量力而为，问心无愧，你将爱得心安理得没遗憾。
夫妻的真意： 相爱一辈子，争吵一辈子，忍耐一辈子，就是夫妻。
家的深刻内涵： 家是夫妻共同经营的，编织着梦和苦辣酸甜的窝。
]]></description>
			<content:encoded><![CDATA[<p>钱多了会压死你，你承受得了吗？带，带不走，放，放不下。<br />
时时刻刻发悲心，饶益众生为他人。<br />
信佛是信因果，如果你真的信因果，就不会有想不通的事。<br />
好和坏都是自己的心，如果不执着了，一切都是好的，坏的也会变好，如果执着了，看什么都不好，好的也会变坏了。<br />
心情好了，你的身体、工作、家庭都会好。<br />
时时刻刻观照自己的心就是念心，时时刻刻调整自己的心态就是修心。<br />
要容纳，好坏都能容纳，要圆融，凡事都能圆融。<br />
什么是吉祥圆满？身心健康、工作顺利、家庭和睦就是吉祥圆满。<br />
不能欠别人，只能还别人，多干点有什么？少说一句能怎样？<br />
财福不是真正的福，法福才是真正的福。<br />
放下，是放下妄想和执着，并不是放弃责任和义务。</p>
<p>爱不是信命得来的侥幸，要付出和成长。 量力而为，问心无愧，你将爱得心安理得没遗憾。<br />
夫妻的真意： 相爱一辈子，争吵一辈子，忍耐一辈子，就是夫妻。<br />
家的深刻内涵： 家是夫妻共同经营的，编织着梦和苦辣酸甜的窝。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wenhq.com/article/view_720.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>火车票实名会泄露个人信息</title>
		<link>http://www.wenhq.com/article/view_719.html</link>
		<comments>http://www.wenhq.com/article/view_719.html#comments</comments>
		<pubDate>Fri, 10 Feb 2012 00:03:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[IT杂谈]]></category>
		<category><![CDATA[生活感悟]]></category>
		<category><![CDATA[闲话]]></category>

		<guid isPermaLink="false">http://www.wenhq.com/?p=719</guid>
		<description><![CDATA[从去年开始火车票终于实名了，据网上介绍说，票面上的二维码包含了个人的信息，可以很容易就读取了，真是不负责啊。
用过的火车票千万不要乱丢，因为自从实名制实施后！，你的信息都包含在火车票上，在火车票的右下方有一个图案！那个叫二维码，上面包含你很多信息，不法分子可能利用上面的信息办卡、行骗、甚至勒索…把火车票撕碎或者把二维码销毁，方可丢弃！
]]></description>
			<content:encoded><![CDATA[<p>从去年开始火车票终于实名了，据网上介绍说，票面上的二维码包含了个人的信息，可以很容易就读取了，真是不负责啊。</p>
<p>用过的火车票千万不要乱丢，因为自从实名制实施后！，你的信息都包含在火车票上，在火车票的右下方有一个图案！那个叫二维码，上面包含你很多信息，不法分子可能利用上面的信息办卡、行骗、甚至勒索…把火车票撕碎或者把二维码销毁，方可丢弃！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wenhq.com/article/view_719.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>12306购买火车票历险记</title>
		<link>http://www.wenhq.com/article/view_718.html</link>
		<comments>http://www.wenhq.com/article/view_718.html#comments</comments>
		<pubDate>Mon, 09 Jan 2012 00:52:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[网站]]></category>

		<guid isPermaLink="false">http://www.wenhq.com/article/view_718.html</guid>
		<description><![CDATA[首先说明一下12306网站的体验算是有史以来最差的，以前从没想过这样的网站能活的这么好，如果是一个电子商务网站的，不知道会咋的。
12306的好处是让我们知道，虽然票很紧张，仔细看下就明白了，凡是有动车和普通车的，动车有票，普通车没票；方式有高铁和动车的，动车就没票了，高铁确富富有余；这看起来不大象是运力不足。
1、配置环境：
先按照网站提示把证书装好，最好使用ie6浏览器；
开通好网银；
2、注册用户：
关键信息&#8211;姓名、个人有效证件、电话、邮箱；
3、在12306的网站上有各地车站的放票时间，提前查看下放票时间；
4、提前5分钟登录网站，输入好出发地和目的地，出发时间等放票时间一到赶紧查；
今年成功购买了一张14号得卧铺票，算是这10多年买票最省事的一次，不用半夜排队，花费了几分钟，虽然很快这个网站我就再也连不上了。但访问该站的静态页面是可以的，说明不是服务器带宽的问题，而是网站并发处理能力太差；
第二次帮朋友买18号就很不幸了，连续三天花了N个小时才买上20号的。
造成网站访问量大的原因：
1、引用的css，js文件多；
2、采用了frame框架，经常返回失败，一般用户还不会刷新frame；
3、最要命的就是一次购买完成不了，需要连续三天或者更多时间连续访问，访问量能低吗；
]]></description>
			<content:encoded><![CDATA[<p>首先说明一下12306网站的体验算是有史以来最差的，以前从没想过这样的网站能活的这么好，如果是一个电子商务网站的，不知道会咋的。<br />
12306的好处是让我们知道，虽然票很紧张，仔细看下就明白了，凡是有动车和普通车的，动车有票，普通车没票；方式有高铁和动车的，动车就没票了，高铁确富富有余；这看起来不大象是运力不足。<br />
1、配置环境：<br />
先按照网站提示把证书装好，最好使用ie6浏览器；<br />
开通好网银；<br />
2、注册用户：<br />
关键信息&#8211;姓名、个人有效证件、电话、邮箱；<br />
3、在12306的网站上有各地车站的放票时间，提前查看下放票时间；<br />
4、提前5分钟登录网站，输入好出发地和目的地，出发时间等放票时间一到赶紧查；<br />
今年成功购买了一张14号得卧铺票，算是这10多年买票最省事的一次，不用半夜排队，花费了几分钟，虽然很快这个网站我就再也连不上了。但访问该站的静态页面是可以的，说明不是服务器带宽的问题，而是网站并发处理能力太差；<br />
第二次帮朋友买18号就很不幸了，连续三天花了N个小时才买上20号的。<br />
造成网站访问量大的原因：<br />
1、引用的css，js文件多；<br />
2、采用了frame框架，经常返回失败，一般用户还不会刷新frame；<br />
3、最要命的就是一次购买完成不了，需要连续三天或者更多时间连续访问，访问量能低吗；</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wenhq.com/article/view_718.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>xml xslt中的空格输出处理</title>
		<link>http://www.wenhq.com/article/view_717.html</link>
		<comments>http://www.wenhq.com/article/view_717.html#comments</comments>
		<pubDate>Sun, 25 Dec 2011 09:04:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[XSL-FO]]></category>

		<guid isPermaLink="false">http://www.wenhq.com/?p=717</guid>
		<description><![CDATA[
xml xslt中的空格输出处理,这个问题困扰了我很久都没有找到解决方法。
今天硬着头皮终于找到了一个可以用的解决方法了。
很简单，即用&#38;#160;就可以表示空格了。
其他参考资料

用&#60;xsl:text&#62;&#60;/xsl:text&#62;可以保留空格，注意这里的xsl类型为text才可以，为其他的就不行了。
另外，disable-output-escaping  属性为yes时，可以禁止转义输出，即直接输出&#60;，&#38;等字符&#60;xsl:text  disable-output-escaping=&#8221;yes&#8221;&#62;&#38;amp;nbsp;&#60;/xsl:text&#62;
&#38;#160;或者&#60;xsl:text disable-output-escaping=&#8221;yes&#8221;&#62;&#60;![CDATA[&#38;nbsp;&#38;nbsp;]]&#62;&#60;/xsl:text&#62;
－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－
在XSL中如何显示空格? 用&#38;#32;无效，而&#38;nbps;则出错
&#60;xsl:text disable-output-escaping=&#8221;yes&#8221;&#62;&#38;amp;nbsp;&#60;/xsl:text&#62;
&#60;xsl:text disable-output-escaping=&#8221;yes&#8221;&#62;&#38;lt;![CDATA[&#38;nbsp;]]&#38;gt;&#60;/xsl:text&#62;
&#60;xsl:value-of disable-output-escaping=&#8221;yes&#8221;&#62;&#38;lt;![CDATA[&#38;nbsp;]]&#38;gt;&#60;/xsl:value-of&#62;
&#60;xsl:value-of disable-output-escaping=&#8221;yes&#8221;&#62;&#38;amp;nbsp;&#60;/xsl:value-of&#62;
都可以，注意：必需要有disable-output-escaping=&#8221;yes&#8221;这个属性说明才可以。


]]></description>
			<content:encoded><![CDATA[<div id="blog_text">
<p>xml xslt中的空格输出处理,这个问题困扰了我很久都没有找到解决方法。</p>
<p>今天硬着头皮终于找到了一个可以用的解决方法了。</p>
<p>很简单，即用&amp;#160;就可以表示空格了。</p>
<p>其他参考资料</p>
<div>
<p>用&lt;xsl:text&gt;&lt;/xsl:text&gt;可以保留空格，注意这里的xsl类型为text才可以，为其他的就不行了。</p>
<p>另外，disable-output-escaping  属性为yes时，可以禁止转义输出，即直接输出&lt;，&amp;等字符&lt;xsl:text  disable-output-escaping=&#8221;yes&#8221;&gt;&amp;amp;nbsp;&lt;/xsl:text&gt;</p>
<p>&amp;#160;或者&lt;xsl:text disable-output-escaping=&#8221;yes&#8221;&gt;&lt;![CDATA[&amp;nbsp;&amp;nbsp;]]&gt;&lt;/xsl:text&gt;</p>
<p>－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－</p>
<p><strong>在XSL中如何显示空格? 用&amp;#32;无效，而&amp;nbps;则出错</p>
<p></strong>&lt;xsl:text disable-output-escaping=&#8221;yes&#8221;&gt;&amp;amp;nbsp;&lt;/xsl:text&gt;<br />
&lt;xsl:text disable-output-escaping=&#8221;yes&#8221;&gt;&amp;lt;![CDATA[&amp;nbsp;]]&amp;gt;&lt;/xsl:text&gt;<br />
&lt;xsl:value-of disable-output-escaping=&#8221;yes&#8221;&gt;&amp;lt;![CDATA[&amp;nbsp;]]&amp;gt;&lt;/xsl:value-of&gt;<br />
&lt;xsl:value-of disable-output-escaping=&#8221;yes&#8221;&gt;&amp;amp;nbsp;&lt;/xsl:value-of&gt;<br />
都可以，注意：必需要有disable-output-escaping=&#8221;yes&#8221;这个属性说明才可以。</p>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.wenhq.com/article/view_717.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JAVA实现AES的加密和解密算法</title>
		<link>http://www.wenhq.com/article/view_716.html</link>
		<comments>http://www.wenhq.com/article/view_716.html#comments</comments>
		<pubDate>Sun, 04 Dec 2011 07:43:17 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[java基础]]></category>

		<guid isPermaLink="false">http://www.wenhq.com/?p=716</guid>
		<description><![CDATA[import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
/**AES 是一种可逆加密算法，对用户的敏感信息加密处理
* 对原始数据进行AES加密后，在进行Base64编码转化；
*/
public class AESOperator {
/*
* 加密用的Key 可以用26个字母和数字组成
* 此处使用AES-128-CBC加密模式，key需要为16位。
*/
private String sKey=&#8221;0123456789abcdef&#8221;;
private String ivParameter=&#8221;0123456789abcdef&#8221;;
private static AESOperator instance=null;
private AESOperator(){
}
public static AESOperator getInstance(){
if (instance==null)
instance= new AESOperator();
return instance;
}
// 加密
public String encrypt(String sSrc) throws Exception {
Cipher cipher = Cipher.getInstance(&#8220;AES/CBC/PKCS5Padding&#8221;);
byte[] raw = sKey.getBytes();
SecretKeySpec skeySpec = new SecretKeySpec(raw, &#8220;AES&#8221;);
IvParameterSpec iv = new IvParameterSpec(ivParameter.getBytes());//使用CBC模式，需要一个向量iv，可增加加密算法的强度
cipher.init(Cipher.ENCRYPT_MODE, skeySpec, iv);
byte[] encrypted = [...]]]></description>
			<content:encoded><![CDATA[<p>import javax.crypto.Cipher;<br />
import javax.crypto.spec.IvParameterSpec;<br />
import javax.crypto.spec.SecretKeySpec;</p>
<p>import sun.misc.BASE64Decoder;<br />
import sun.misc.BASE64Encoder;</p>
<p>/**AES 是一种可逆加密算法，对用户的敏感信息加密处理<br />
* 对原始数据进行AES加密后，在进行Base64编码转化；<br />
*/<br />
public class AESOperator {<br />
/*<br />
* 加密用的Key 可以用26个字母和数字组成<br />
* 此处使用AES-128-CBC加密模式，key需要为16位。<br />
*/<br />
private String sKey=&#8221;0123456789abcdef&#8221;;<br />
private String ivParameter=&#8221;0123456789abcdef&#8221;;<br />
private static AESOperator instance=null;<br />
private AESOperator(){</p>
<p>}<br />
public static AESOperator getInstance(){<br />
if (instance==null)<br />
instance= new AESOperator();<br />
return instance;<br />
}<br />
// 加密<br />
public String encrypt(String sSrc) throws Exception {<br />
Cipher cipher = Cipher.getInstance(&#8220;AES/CBC/PKCS5Padding&#8221;);<br />
byte[] raw = sKey.getBytes();<br />
SecretKeySpec skeySpec = new SecretKeySpec(raw, &#8220;AES&#8221;);<br />
IvParameterSpec iv = new IvParameterSpec(ivParameter.getBytes());//使用CBC模式，需要一个向量iv，可增加加密算法的强度<br />
cipher.init(Cipher.ENCRYPT_MODE, skeySpec, iv);<br />
byte[] encrypted = cipher.doFinal(sSrc.getBytes(&#8220;utf-8&#8243;));<br />
return new BASE64Encoder().encode(encrypted);//此处使用BASE64做转码。<br />
}</p>
<p>// 解密<br />
public String decrypt(String sSrc) throws Exception {<br />
try {<br />
byte[] raw = sKey.getBytes(&#8220;ASCII&#8221;);<br />
SecretKeySpec skeySpec = new SecretKeySpec(raw, &#8220;AES&#8221;);<br />
Cipher cipher = Cipher.getInstance(&#8220;AES/CBC/PKCS5Padding&#8221;);<br />
IvParameterSpec iv = new IvParameterSpec(ivParameter.getBytes());<br />
cipher.init(Cipher.DECRYPT_MODE, skeySpec, iv);<br />
byte[] encrypted1 = new BASE64Decoder().decodeBuffer(sSrc);//先用base64解密<br />
byte[] original = cipher.doFinal(encrypted1);<br />
String originalString = new String(original,&#8221;utf-8&#8243;);<br />
return originalString;<br />
} catch (Exception ex) {<br />
return null;<br />
}<br />
}</p>
<p>public static void main(String[] args) throws Exception {<br />
// 需要加密的字串<br />
String cSrc = &#8220;我来自www.wenhq.com&#8221;;<br />
System.out.println(cSrc);<br />
// 加密<br />
long lStart = System.currentTimeMillis();<br />
String enString = AESOperator.getInstance().encrypt(cSrc);<br />
System.out.println(&#8220;加密后的字串是：&#8221; + enString);</p>
<p>long lUseTime = System.currentTimeMillis() &#8211; lStart;<br />
System.out.println(&#8220;加密耗时：&#8221; + lUseTime + &#8220;毫秒&#8221;);<br />
// 解密<br />
lStart = System.currentTimeMillis();<br />
String DeString = AESOperator.getInstance().decrypt(enString);<br />
System.out.println(&#8220;解密后的字串是：&#8221; + DeString);<br />
lUseTime = System.currentTimeMillis() &#8211; lStart;<br />
System.out.println(&#8220;解密耗时：&#8221; + lUseTime + &#8220;毫秒&#8221;);<br />
}<br />
}</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wenhq.com/article/view_716.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>fop的流程控制语句</title>
		<link>http://www.wenhq.com/article/view_715.html</link>
		<comments>http://www.wenhq.com/article/view_715.html#comments</comments>
		<pubDate>Wed, 30 Nov 2011 11:19:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[XSL-FO]]></category>

		<guid isPermaLink="false">http://www.wenhq.com/?p=715</guid>
		<description><![CDATA[fop中条件判断有两种方式：
第一、   if语句
&#60;xsl:if test=&#8221;host =&#8217;wenhq&#8217;&#8221;&#62;
&#60;fo:block&#62;亲亲宝宝&#60;/fo:block&#62;
&#60;/xsl:if&#62;
host是xml中数据，可以动态设置
第二、   when语句
&#60;xsl:choose&#62;
&#60;xsl:when test="host ='wenhq'"&#62;
&#60;fo:block&#62;亲亲宝宝&#60;/fo:block&#62;
    &#60;/xsl:when&#62;
    &#60;xsl:otherwise&#62;
&#60;fo:block&#62;不是来自亲亲宝宝&#60;/fo:block&#62;
    &#60;/xsl:otherwise&#62;
&#60;/xsl:choose&#62;
]]></description>
			<content:encoded><![CDATA[<p>fop中条件判断有两种方式：</p>
<p>第一、   if语句</p>
<p>&lt;xsl:if test=&#8221;host =&#8217;wenhq&#8217;&#8221;&gt;</p>
<p>&lt;fo:block&gt;亲亲宝宝&lt;/fo:block&gt;</p>
<p>&lt;/xsl:if&gt;</p>
<p>host是xml中数据，可以动态设置</p>
<p>第二、   when语句</p>
<pre>&lt;xsl:choose&gt;</pre>
<pre>&lt;xsl:when test="host ='wenhq'"&gt;</pre>
<p>&lt;fo:block&gt;亲亲宝宝&lt;/fo:block&gt;</p>
<pre>    &lt;/xsl:when&gt;</pre>
<pre>    &lt;xsl:otherwise&gt;</pre>
<p>&lt;fo:block&gt;不是来自亲亲宝宝&lt;/fo:block&gt;</p>
<pre>    &lt;/xsl:otherwise&gt;</pre>
<pre>&lt;/xsl:choose&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.wenhq.com/article/view_715.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>fop动态引用图片</title>
		<link>http://www.wenhq.com/article/view_714.html</link>
		<comments>http://www.wenhq.com/article/view_714.html#comments</comments>
		<pubDate>Fri, 25 Nov 2011 11:17:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[XSL-FO]]></category>

		<guid isPermaLink="false">http://www.wenhq.com/?p=714</guid>
		<description><![CDATA[fop中一般是这样应用图片：
&#60;fo:external-graphic src=&#8221;url(/path/cover1.jpg)&#8221; /&#62;
这样图片是不会变的，有时需要根据条件换个图片，src属性值不能引入&#60;xsl:value-of select= 去获取xml中的值。可以通过attribute的属性给src动态赋值，如：
&#60;fo:external-graphic&#62;
&#60;xsl:attribute name=&#8221;src&#8221;&#62;&#60;xsl:value-of select=&#8221;concat(&#8216;url(&#38;quot;&#8217;,Data/SealJpg, &#8216;.jpg&#8217;, &#8216;&#38;quot;)&#8217;)&#8221;/&#62;&#60;/xsl:attribute&#62;
&#60;/fo:external-graphic&#62;
]]></description>
			<content:encoded><![CDATA[<p>fop中一般是这样应用图片：</p>
<p>&lt;fo:external-graphic src=&#8221;url(/path/cover1.jpg)&#8221; /&gt;</p>
<p>这样图片是不会变的，有时需要根据条件换个图片，src属性值不能引入&lt;xsl:value-of select= 去获取xml中的值。可以通过attribute的属性给src动态赋值，如：</p>
<p>&lt;fo:external-graphic&gt;</p>
<p>&lt;xsl:attribute name=&#8221;src&#8221;&gt;&lt;xsl:value-of select=&#8221;concat(&#8216;url(&amp;quot;&#8217;,Data/SealJpg, &#8216;.jpg&#8217;, &#8216;&amp;quot;)&#8217;)&#8221;/&gt;&lt;/xsl:attribute&gt;</p>
<p>&lt;/fo:external-graphic&gt;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wenhq.com/article/view_714.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

