<?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>代码收藏 &#187; 解密</title> <atom:link href="http://code.9enjoy.com/tag/%e8%a7%a3%e5%af%86/feed/" rel="self" type="application/rss+xml" /><link>http://code.9enjoy.com</link> <description>收集网站开发时常用到的代码(asp,php,js等)，以函数为主</description> <lastBuildDate>Mon, 24 Jan 2011 14:23:49 +0000</lastBuildDate> <generator>http://wordpress.org/?v=2.9.1</generator> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <item><title>mssql的存储过程解密的存储过程</title><link>http://code.9enjoy.com/mssql/sp_decrypt/</link> <comments>http://code.9enjoy.com/mssql/sp_decrypt/#comments</comments> <pubDate>Sat, 07 Mar 2009 19:56:59 +0000</pubDate> <dc:creator>enjoy</dc:creator> <category><![CDATA[mssql]]></category> <category><![CDATA[存储过程]]></category> <category><![CDATA[解密]]></category><guid
isPermaLink="false">http://code.itlearner.com/?p=63</guid> <description><![CDATA[create PROCEDURE sp_decrypt(@objectname varchar(50))<br/>AS<br/>begin<br/>set nocount on<br/>--CSDN：j9988 copyright:2004.07.15 <br/>--V3.2 <br/>--破解字节不受限制，适用于SQLSERVER2000存储过程，函数，视图，触发器<br/>--修正上一版"视图触发器"不能正确解密错误<br/>--发现有错，请E_MAIL：CSDNj9988@tom.com<br/>begin tran<br/>declare @objectname1 varchar(100),@orgvarbin varbinary(8000)<br/>...
]]></description> <content:encoded><![CDATA[<p
class="code"><code>create PROCEDURE sp_decrypt(@objectname varchar(50))<br
/> AS<br
/> begin<br
/> set nocount on<br
/> --CSDN：j9988 copyright:2004.07.15<br
/> --V3.2<br
/> --破解字节不受限制，适用于SQLSERVER2000存储过程，函数，视图，触发器<br
/> --修正上一版"视图触发器"不能正确解密错误<br
/> --发现有错，请E_MAIL：CSDNj9988@tom.com<br
/> begin tran<br
/> declare @objectname1 varchar(100),@orgvarbin varbinary(8000)<br
/> declare @sql1 nvarchar(4000),@sql2 varchar(8000),@sql3 nvarchar(4000),@sql4 nvarchar(4000)<br
/> DECLARE @OrigSpText1 nvarchar(4000), @OrigSpText2 nvarchar(4000) , @OrigSpText3 nvarchar(4000), @resultsp nvarchar(4000)<br
/> declare @i int,@status int,@type varchar(10),@parentid int<br
/> declare @colid int,@n int,@q int,@j int,@k int,@encrypted int,@number int<br
/> select @type=xtype,@parentid=parent_obj from sysobjects where id=object_id(@objectname)</code></p><p><code>create table #temp(number int,colid int,ctext varbinary(8000),encrypted int,status int)<br
/> insert #temp SELECT number,colid,ctext,encrypted,status FROM syscomments WHERE id = object_id(@objectname)<br
/> select @number=max(number) from #temp<br
/> set @k=0</code></p><p><code>while @k&lt;=@number<br
/> begin<br
/> if exists(select 1 from syscomments where id=object_id(@objectname) and number=@k)<br
/> begin<br
/> if @type='P'<br
/> set @sql1=(case when @number&gt;1 then 'ALTER PROCEDURE '+ @objectname +';'+rtrim(@k)+' WITH ENCRYPTION AS '<br
/> else 'ALTER PROCEDURE '+ @objectname+' WITH ENCRYPTION AS '<br
/> end)</p><p>if @type='TR'<br
/> begin<br
/> declare @parent_obj varchar(255),@tr_parent_xtype varchar(10)<br
/> select @parent_obj=parent_obj from sysobjects where id=object_id(@objectname)<br
/> select @tr_parent_xtype=xtype from sysobjects where id=@parent_obj<br
/> if @tr_parent_xtype='V'<br
/> begin<br
/> set @sql1='ALTER TRIGGER '+@objectname+' ON '+OBJECT_NAME(@parentid)+' WITH ENCRYPTION INSTERD OF INSERT AS PRINT 1 '<br
/> end<br
/> else<br
/> begin<br
/> set @sql1='ALTER TRIGGER '+@objectname+' ON '+OBJECT_NAME(@parentid)+' WITH ENCRYPTION FOR INSERT AS PRINT 1 '<br
/> end</p><p>end<br
/> if @type='FN' or @type='TF' or @type='IF'<br
/> set @sql1=(case @type when 'TF' then<br
/> 'ALTER FUNCTION '+ @objectname+'(@a char(1)) returns @b table(a varchar(10)) with encryption as begin insert @b select @a return end '<br
/> when 'FN' then<br
/> 'ALTER FUNCTION '+ @objectname+'(@a char(1)) returns char(1) with encryption as begin return @a end'<br
/> when 'IF' then<br
/> 'ALTER FUNCTION '+ @objectname+'(@a char(1)) returns table with encryption as return select @a as a'<br
/> end)</p><p>if @type='V'<br
/> set @sql1='ALTER VIEW '+@objectname+' WITH ENCRYPTION AS SELECT 1 as f'</p><p>set @q=len(@sql1)<br
/> set @sql1=@sql1+REPLICATE('-',4000-@q)<br
/> select @sql2=REPLICATE('-',8000)<br
/> set @sql3='exec(@sql1'<br
/> select @colid=max(colid) from #temp where number=@k<br
/> set @n=1<br
/> while @n&lt;=CEILING(1.0*(@colid-1)/2) and len(@sql3)&lt;=3996<br
/> begin<br
/> set @sql3=@sql3+'+@'<br
/> set @n=@n+1<br
/> end<br
/> set @sql3=@sql3+')'<br
/> exec sp_executesql @sql3,N'@sql1 nvarchar(4000),@ varchar(8000)',@sql1=@sql1,@=@sql2</p><p>end<br
/> set @k=@k+1<br
/> end</p><p>set @k=0<br
/> while @k&lt;=@number<br
/> begin</p><p>if exists(select 1 from syscomments where id=object_id(@objectname) and number=@k)<br
/> begin<br
/> select @colid=max(colid) from #temp where number=@k<br
/> set @n=1</p><p>while @n&lt;=@colid<br
/> begin<br
/> select @OrigSpText1=ctext,@encrypted=encrypted,@status=status FROM #temp WHERE colid=@n and number=@k</p><p>SET @OrigSpText3=(SELECT ctext FROM syscomments WHERE id=object_id(@objectname) and colid=@n and number=@k)<br
/> if @n=1<br
/> begin<br
/> if @type='P'<br
/> SET @OrigSpText2=(case when @number&gt;1 then 'CREATE PROCEDURE '+ @objectname +';'+rtrim(@k)+' WITH ENCRYPTION AS '<br
/> else 'CREATE PROCEDURE '+ @objectname +' WITH ENCRYPTION AS '<br
/> end)</p><p>if @type='FN' or @type='TF' or @type='IF'<br
/> SET @OrigSpText2=(case @type when 'TF' then<br
/> 'CREATE FUNCTION '+ @objectname+'(@a char(1)) returns @b table(a varchar(10)) with encryption as begin insert @b select @a return end '<br
/> when 'FN' then<br
/> 'CREATE FUNCTION '+ @objectname+'(@a char(1)) returns char(1) with encryption as begin return @a end'<br
/> when 'IF' then<br
/> 'CREATE FUNCTION '+ @objectname+'(@a char(1)) returns table with encryption as return select @a as a'<br
/> end)</p><p>if @type='TR'<br
/> begin</p><p>if @tr_parent_xtype='V'<br
/> begin<br
/> set @OrigSpText2='CREATE TRIGGER '+@objectname+' ON '+OBJECT_NAME(@parentid)+' WITH ENCRYPTION INSTEAD OF INSERT AS PRINT 1 '<br
/> end<br
/> else<br
/> begin<br
/> set @OrigSpText2='CREATE TRIGGER '+@objectname+' ON '+OBJECT_NAME(@parentid)+' WITH ENCRYPTION FOR INSERT AS PRINT 1 '<br
/> end</p><p>end</p><p>if @type='V'<br
/> set @OrigSpText2='CREATE VIEW '+@objectname+' WITH ENCRYPTION AS SELECT 1 as f'</p><p>set @q=4000-len(@OrigSpText2)<br
/> set @OrigSpText2=@OrigSpText2+REPLICATE('-',@q)<br
/> end<br
/> else<br
/> begin<br
/> SET @OrigSpText2=REPLICATE('-', 4000)<br
/> end<br
/> SET @i=1</p><p>SET @resultsp = replicate(N'A', (datalength(@OrigSpText1) / 2))</p><p>WHILE @i&lt;=datalength(@OrigSpText1)/2<br
/> BEGIN</p><p>SET @resultsp = stuff(@resultsp, @i, 1, NCHAR(UNICODE(substring(@OrigSpText1, @i, 1)) ^<br
/> (UNICODE(substring(@OrigSpText2, @i, 1)) ^<br
/> UNICODE(substring(@OrigSpText3, @i, 1)))))<br
/> SET @i=@i+1<br
/> END<br
/> set @orgvarbin=cast(@OrigSpText1 as varbinary(8000))<br
/> set @resultsp=(case when @encrypted=1<br
/> then @resultsp<br
/> else convert(nvarchar(4000),case when @status&amp;2=2 then uncompress(@orgvarbin) else @orgvarbin end)<br
/> end)<br
/> print @resultsp</p><p>set @n=@n+1</p><p>end</p><p>end<br
/> set @k=@k+1<br
/> end</p><p>drop table #temp<br
/> rollback tran<br
/> end</p><p></code></p><p><code>go</code></p><p>hx提示：在查询分析器里运行代码，创建了一个叫sp_decrypt的存储过程，然后用sp_decrypt 加密的存储过程名称就可以看到解密后的</p> <img
src="http://code.9enjoy.com/?ak_action=api_record_view&id=63&type=feed" alt="" />]]></content:encoded> <wfw:commentRss>http://code.9enjoy.com/mssql/sp_decrypt/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>passport_decrypt－Passport 解密函数</title><link>http://code.9enjoy.com/php/passport_decrypt/</link> <comments>http://code.9enjoy.com/php/passport_decrypt/#comments</comments> <pubDate>Mon, 24 Mar 2008 13:44:35 +0000</pubDate> <dc:creator>enjoy</dc:creator> <category><![CDATA[php]]></category> <category><![CDATA[decrypt]]></category> <category><![CDATA[passport]]></category> <category><![CDATA[解密]]></category><guid
isPermaLink="false">http://code.itlearner.com/?p=20</guid> <description><![CDATA[[CODE_LITE]	/**<br/> * Passport 解密函数<br/> *<br/> * @param		string		加密后的字串<br/> * @param		string		私有密匙(用于解密和加密)<br/> *<br/> * @return	string		字串经过私有密匙解密后的结果<br/> */<br/> function passport_decrypt($txt, $key) {<br/><br/> // $txt 的结果为加密后的字串经过 base64 解码，然后与私有密匙一起，<br/> // 经过 passport_key() 函数处理后的返回值<br/>...
]]></description> <content:encoded><![CDATA[<p
class="code"><code> /**<br
/> * Passport 解密函数<br
/> *<br
/> * @param    string    加密后的字串<br
/> * @param    string    私有密匙(用于解密和加密)<br
/> *<br
/> * @return  string    字串经过私有密匙解密后的结果<br
/> */<br
/> function passport_decrypt($txt, $key) {</p><p>// $txt 的结果为加密后的字串经过 base64 解码，然后与私有密匙一起，<br
/> // 经过 passport_key() 函数处理后的返回值<br
/> $txt = passport_key(base64_decode($txt), $key);</p><p>// 变量初始化<br
/> $tmp = '';</p><p>// for 循环，$i 为从 0 开始，到小于 $txt 字串长度的整数<br
/> for ($i = 0; $i &lt; strlen($txt); $i++) {<br
/> // $tmp 字串在末尾增加一位，其内容为 $txt 的第 $i 位，<br
/> // 与 $txt 的第 $i + 1 位取异或。然后 $i = $i + 1<br
/> $tmp .= $txt[$i] ^ $txt[++$i];<br
/> }</p><p>// 返回 $tmp 的值作为结果<br
/> return $tmp;</p><p>}</p><p>/**<br
/> * Passport 密匙处理函数<br
/> *<br
/> * @param    string    待加密或待解密的字串<br
/> * @param    string    私有密匙(用于解密和加密)<br
/> *<br
/> * @return  string    处理后的密匙<br
/> */<br
/> function passport_key($txt, $encrypt_key) {</p><p>// 将 $encrypt_key 赋为 $encrypt_key 经 md5() 后的值<br
/> $encrypt_key = md5($encrypt_key);</p><p>// 变量初始化<br
/> $ctr = 0;<br
/> $tmp = '';</p><p>// for 循环，$i 为从 0 开始，到小于 $txt 字串长度的整数<br
/> for($i = 0; $i &lt; strlen($txt); $i++) {<br
/> // 如果 $ctr = $encrypt_key 的长度，则 $ctr 清零<br
/> $ctr = $ctr == strlen($encrypt_key) ? 0 : $ctr;<br
/> // $tmp 字串在末尾增加一位，其内容为 $txt 的第 $i 位，<br
/> // 与 $encrypt_key 的第 $ctr + 1 位取异或。然后 $ctr = $ctr + 1<br
/> $tmp .= $txt[$i] ^ $encrypt_key[$ctr++];<br
/> }</p><p>// 返回 $tmp 的值作为结果<br
/> return $tmp;</p><p>}</code></p><p>来源：Discuz API</p> <img
src="http://code.9enjoy.com/?ak_action=api_record_view&id=20&type=feed" alt="" />]]></content:encoded> <wfw:commentRss>http://code.9enjoy.com/php/passport_decrypt/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk
Database Caching 2/14 queries in 0.325 seconds using disk

Served from: code.itlearner.com @ 2012-02-07 02:54:20 -->
