<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_Kevin Shan</title><subtitle type="text"/><id>http://feed.cnblogs.com/blog/u/12699/rss</id><updated>2010-08-05T02:05:48Z</updated><author><name>Kevin Shan</name><uri>http://www.cnblogs.com/kevinShan/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/kevinShan/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/12699/rss"/><entry><id>http://www.cnblogs.com/kevinShan/archive/2010/04/17/1714472.html</id><title type="text">Silverlight4中利用System.Numerics.BigInteger实现RSA算法</title><summary type="text">    在Silverlight4 Beta版本发布的时候，Silverlight4 Beta的SDK中还不包含System.Numerics.dll库。要实现RSA算法，还得利用其他BigInteger类。可参见我上一篇文章《Silverlight中非对称加密及数字签名RSA算法的实现》。</summary><published>2010-04-17T14:44:00Z</published><updated>2010-04-17T14:44:00Z</updated><author><name>Kevin Shan</name><uri>http://www.cnblogs.com/kevinShan/</uri></author><link rel="alternate" href="http://www.cnblogs.com/kevinShan/archive/2010/04/17/1714472.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/kevinShan/archive/2010/04/17/1714472.html"/><content type="html">&lt;p&gt;在Silverlight4 Beta版本发布的时候，Silverlight4 Beta的SDK中还不包含System.Numerics.dll库。要实现RSA算法，还得利用其他BigInteger类。可参见我上一篇文章《&lt;a href="http://www.cnblogs.com/kevinShan/archive/2010/01/03/1638211.html"&gt;Silverlight中非对称加密及数字签名RSA算法的实现&lt;/a&gt;》。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 现在Silverlight4正式发布了。在Silverlight4正式版的SDK中包含了System.Numerics.dll库。并且该库中实现了BigInteger类。因此，现在要在Silverlight下实现RSA算法，可以直接利用微软提供的BigInteger类了。&lt;/p&gt;&#xD;
&lt;p&gt;微软提供的BigInteger类，经测试性能比Chew Keong TAN的BigInteger类有几十倍的提升。&lt;/p&gt;&#xD;
&lt;p&gt;以下是利用Chew Keong TAN的BigInteger类实现的RSA算法的测试结果：&lt;/p&gt;&#xD;
&lt;table cellpadding="0" cellspacing="0" border="0" style="width: 612px;"&gt;&#xD;
&lt;colgroup&gt;&lt;col width="72"&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col width="147" span="2"&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col width="246"&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;/colgroup&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr height="18"&gt;&#xD;
&lt;td width="72" height="18"&gt;&lt;/td&gt;&#xD;
&lt;td width="147" &gt;1024b数据&lt;/td&gt;&#xD;
&lt;td width="147" &gt;1KB数据&lt;/td&gt;&#xD;
&lt;td width="246" &gt;10KB数据&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="18"&gt;&#xD;
&lt;td height="18"&gt;私钥加密&lt;/td&gt;&#xD;
&lt;td &gt;00:00:01.4250000&lt;/td&gt;&#xD;
&lt;td &gt;00:00:04.2260000&lt;/td&gt;&#xD;
&lt;td &gt;00:00:35.6540000&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="18"&gt;&#xD;
&lt;td height="18"&gt;公钥加密&lt;/td&gt;&#xD;
&lt;td &gt;00:00:00.0360000&lt;/td&gt;&#xD;
&lt;td &gt;00:00:00.1070000&lt;/td&gt;&#xD;
&lt;td &gt;00:00:00.9030000&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;/tbody&gt;&#xD;
&lt;/table&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;以下是利用System.Numerics.BigInteger类实现的RSA算法的测试结果：&lt;/p&gt;&#xD;
&lt;table cellpadding="0" cellspacing="0" border="0" style="width: 612px;"&gt;&#xD;
&lt;colgroup&gt;&lt;col width="72"&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col width="147" span="2"&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col width="246"&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;col&gt;&lt;/col&gt;&lt;/colgroup&gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr height="18"&gt;&#xD;
&lt;td width="72" height="18"&gt;&lt;/td&gt;&#xD;
&lt;td width="147" &gt;1024b数据&lt;/td&gt;&#xD;
&lt;td width="147" &gt;1KB数据&lt;/td&gt;&#xD;
&lt;td width="246" &gt;10KB数据&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="18"&gt;&#xD;
&lt;td height="18"&gt;私钥加密&lt;/td&gt;&#xD;
&lt;td &gt;00:00:00.1130000&lt;/td&gt;&#xD;
&lt;td &gt;00:00:00.3730000&lt;/td&gt;&#xD;
&lt;td &gt;00:00:02.8640000&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr height="18"&gt;&#xD;
&lt;td height="18"&gt;公钥加密&lt;/td&gt;&#xD;
&lt;td &gt;00:00:00.0010000&lt;/td&gt;&#xD;
&lt;td &gt;00:00:00.0040000&lt;/td&gt;&#xD;
&lt;td &gt;00:00:00.0320000&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;/tbody&gt;&#xD;
&lt;/table&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;说明：测试使用1024位长的密钥，e由.NET Framework中默认选择的是65537。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;div id="license_information"&gt;&lt;a target="_blank" rel="license" href="http://creativecommons.org/licenses/by/2.5/cn/"&gt;&lt;img src="http://i.creativecommons.org/l/by/2.5/cn/88x31.png" align="left" alt="Creative Commons License" style="border-width: 0pt;" /&gt;&lt;/a&gt;&#xD;
&lt;p&gt;本文基于&lt;a target="_blank" href="http://creativecommons.org/licenses/by/2.5/cn/" title="Creative Commons Attribution 2.5 China Mainland License"&gt;署名 2.5 中国大陆&lt;/a&gt;许可协议发布，欢迎转载，演绎或用于商业目的，但是必须保留本文的署名&lt;a target="_blank" href="http://www.cnblogs.com/KevinShan/"&gt;KevinShan&lt;/a&gt;（包含链接）。如您有任何疑问或者授权方面的协商，请&lt;a target="_blank" href="http://space.cnblogs.com/msg/send/KevinShan"&gt;给我留言&lt;/a&gt;。&lt;/p&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;利用System.Numerics.BigInteger类实现的RSA算法源代码下载：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://files.cnblogs.com/kevinShan/RSAManaged_new.zip"&gt;RSAManaged.zip&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/kevinShan/aggbug/1714472.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/kevinShan/archive/2010/04/17/1714472.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/kevinShan/archive/2010/01/05/1639887.html</id><title type="text">Silverlight控件注册验证机制探索——纯客户端注册验证</title><summary type="text">    在上一篇文章《Silverlight中非对称加密及数字签名RSA算法的实现》中，我实现了一个Silverlight中可用的RSA算法。这一篇文章我将实现一个实验性的Silverlight控件纯客户端注册验证机制。希望做过这方面的朋友多给些指导性意见。</summary><published>2010-01-05T12:55:00Z</published><updated>2010-01-05T12:55:00Z</updated><author><name>Kevin Shan</name><uri>http://www.cnblogs.com/kevinShan/</uri></author><link rel="alternate" href="http://www.cnblogs.com/kevinShan/archive/2010/01/05/1639887.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/kevinShan/archive/2010/01/05/1639887.html"/></entry><entry><id>http://www.cnblogs.com/kevinShan/archive/2010/01/03/1638211.html</id><title type="text">Silverlight中非对称加密及数字签名RSA算法的实现</title><summary type="text">    RSA算法是第一个既能用于数据加密也能用于数字签名的算法。它易于理解和操作，也很流行。它的安全性是基于大整数素因子分解的困难性，而大整数因子分解问题是数学上的著名难题，至今没有有效的方法予以解决，因此可以确保RSA算法的安全性。    到目前Silverlight4 Beta发布为止，Silverlight中仍然没有提供非对称加密及数字签名相关的算法。而.NET Framework中提供的RSA等算法，都是通过操作系统提供的相关API实现的，没法移植到Silverlight中使用。因此很难实现一个健壮点的Silverlight纯客户端的注册验证算法。这几天抽空写了个Silverlight下可用的RSA算法，使用非对称加密和数字签名使Silverlight纯客户端的注册验证算法健壮了不少。关于这个Silverlight下可用的RSA算法的具体实现，记录在下面，欢迎大家拍砖。</summary><published>2010-01-03T05:41:00Z</published><updated>2010-01-03T05:41:00Z</updated><author><name>Kevin Shan</name><uri>http://www.cnblogs.com/kevinShan/</uri></author><link rel="alternate" href="http://www.cnblogs.com/kevinShan/archive/2010/01/03/1638211.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/kevinShan/archive/2010/01/03/1638211.html"/></entry><entry><id>http://www.cnblogs.com/kevinShan/archive/2009/08/11/1543546.html</id><title type="text">GCHandle Leak</title><summary type="text">刚刚在园子里看到一篇文章《.net中的游魂现象》，正好这两天关心这个问题，就打算再写篇文章和大家讨论一下，先给大家提两个问题：问题1：点击button1后，Timer会被GC回收吗？点击button2后呢？为什么？（这个问题来自《.net中的游魂现象》这篇文章中，不过便有分析，Timer现在是System.Windows.Forms.Timer）。</summary><published>2009-08-11T04:27:00Z</published><updated>2009-08-11T04:27:00Z</updated><author><name>Kevin Shan</name><uri>http://www.cnblogs.com/kevinShan/</uri></author><link rel="alternate" href="http://www.cnblogs.com/kevinShan/archive/2009/08/11/1543546.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/kevinShan/archive/2009/08/11/1543546.html"/></entry><entry><id>http://www.cnblogs.com/kevinShan/archive/2009/08/05/1539718.html</id><title type="text">一次性能提升300%的优化实践</title><summary type="text">  性能优化一般都是从性能瓶颈开始。项目中有这样一个控件，它包含很多个Item，每个Item字体可能相同，也可能不同。且该控件经常在同一个Form上大量使用。正是这个控件在使用GDI画每个Item的文字时，出现了性能瓶颈...</summary><published>2009-08-05T09:04:00Z</published><updated>2009-08-05T09:04:00Z</updated><author><name>Kevin Shan</name><uri>http://www.cnblogs.com/kevinShan/</uri></author><link rel="alternate" href="http://www.cnblogs.com/kevinShan/archive/2009/08/05/1539718.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/kevinShan/archive/2009/08/05/1539718.html"/></entry><entry><id>http://www.cnblogs.com/kevinShan/archive/2009/08/05/1539632.html</id><title type="text">一个弱引用缓存类</title><summary type="text">一个在性能优化中经常使用到的WeakReferenceCachePool类。</summary><published>2009-08-05T07:40:00Z</published><updated>2009-08-05T07:40:00Z</updated><author><name>Kevin Shan</name><uri>http://www.cnblogs.com/kevinShan/</uri></author><link rel="alternate" href="http://www.cnblogs.com/kevinShan/archive/2009/08/05/1539632.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/kevinShan/archive/2009/08/05/1539632.html"/></entry><entry><id>http://www.cnblogs.com/kevinShan/archive/2009/05/09/1453225.html</id><title type="text">《神奇：长达30分钟的3D视频，只需200多K》中隐藏程序到Jpg图片中的小工具</title><summary type="text">这是一个在《神奇：长达30分钟的3D视频，只需200多K》中用到的隐藏程序到Jpg图片中的小工具</summary><published>2009-05-09T08:15:00Z</published><updated>2009-05-09T08:15:00Z</updated><author><name>Kevin Shan</name><uri>http://www.cnblogs.com/kevinShan/</uri></author><link rel="alternate" href="http://www.cnblogs.com/kevinShan/archive/2009/05/09/1453225.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/kevinShan/archive/2009/05/09/1453225.html"/></entry><entry><id>http://www.cnblogs.com/kevinShan/archive/2009/03/12/1382728.html</id><title type="text">SourceSafe登录密码安全研究</title><summary type="text">声明：本文仅做研究交流用途。请不要非法利用。SourceSafePasswordRecovery仅用来帮助自己忘记密码的人使用，请不要用作非法用途，否则后果自负。-txhak 本文研究了SourceSafe登录密码机制，并提供了一种找回忘记的登录密码的方法。</summary><published>2009-03-12T09:50:00Z</published><updated>2009-03-12T09:50:00Z</updated><author><name>Kevin Shan</name><uri>http://www.cnblogs.com/kevinShan/</uri></author><link rel="alternate" href="http://www.cnblogs.com/kevinShan/archive/2009/03/12/1382728.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/kevinShan/archive/2009/03/12/1382728.html"/></entry><entry><id>http://www.cnblogs.com/kevinShan/archive/2008/07/01/1233198.html</id><title type="text">Greeting Card Designer</title><summary type="text">微软MSDN上的一个例子。演示了如何利用IE的编辑功能来设计一个Greeting Card。个人觉得这个例子很好玩，发在这里让大家也看看。</summary><published>2008-07-01T07:40:00Z</published><updated>2008-07-01T07:40:00Z</updated><author><name>Kevin Shan</name><uri>http://www.cnblogs.com/kevinShan/</uri></author><link rel="alternate" href="http://www.cnblogs.com/kevinShan/archive/2008/07/01/1233198.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/kevinShan/archive/2008/07/01/1233198.html"/></entry><entry><id>http://www.cnblogs.com/kevinShan/archive/2008/06/20/1226289.html</id><title type="text">.NET软件保护与破解浅析</title><summary type="text">    网上很少看到有关.NET软件保护与破解的文章，刚好分析了几款有一定代表性的.NET软件，于是便将他们的保护措施和如何破解方法记录下来，以便和大家交流。在开始之前，首先申明：本文中反编译和破解的软件只是为学习和研究的目的，请勿非法使用。</summary><published>2008-06-19T17:12:00Z</published><updated>2008-06-19T17:12:00Z</updated><author><name>Kevin Shan</name><uri>http://www.cnblogs.com/kevinShan/</uri></author><link rel="alternate" href="http://www.cnblogs.com/kevinShan/archive/2008/06/20/1226289.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/kevinShan/archive/2008/06/20/1226289.html"/></entry></feed>
