<TABLE class=MsoNormalTable style="MARGIN-LEFT: 6pt; WIDTH: 99.28%" cellSpacing=3 cellPadding=0 width="99%" border=0><TBODY>
<TR>
<TD style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; WIDTH: 99.64%; PADDING-TOP: 0.75pt" width="99%">
<P class=MsoNormal><B><FONT face=宋体 size=3><SPAN lang=EN-US style="FONT-WEIGHT: bold; FONT-SIZE: 12pt">Base64</SPAN>编码与解码,<SPAN lang=EN-US>SQL Server 2005</SPAN>中可以用下面的简单函数实现:</FONT></B><SPAN lang=EN-US><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></P>
<P class=MsoNormal><FONT face=宋体 size=3><SPAN lang=EN-US style="FONT-SIZE: 12pt">create function f_ToBase64<BR>(@bin varbinary(max))<BR>returns varchar(max)<BR>as begin<BR>return cast(N'' as xml).value('xs:base64Binary(xs:hexBinary(sql:variable("@bin")))', 'varchar(max)')<BR>end<BR>go<BR>create function f_FromBase64<BR>(@64 varchar(max))<BR>returns varbinary(max)<BR>as begin<BR>return cast(N'' as xml).value('xs:base64Binary(sql:variable("@64"))', 'varbinary(max)')<BR>end<BR>go<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=宋体 size=3><SPAN lang=EN-US style="FONT-SIZE: 12pt">--</SPAN>使用方法:<SPAN lang=EN-US><BR>select dbo.f_ToBase64(cast('http://fine3x.com</SPAN>正好软件<SPAN lang=EN-US>' as varbinary(max)))<BR>select cast(dbo.f_FromBase64('aHR0cDovL2ZpbmUzeC5jb23V/brDyO28/g==') as varchar)<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><B><FONT face=宋体 size=3><SPAN lang=EN-US style="FONT-WEIGHT: bold; FONT-SIZE: 12pt"><o:p> </o:p></SPAN></FONT></B></P>
<P class=MsoNormal><B><FONT face=宋体 size=3><SPAN lang=EN-US style="FONT-WEIGHT: bold; FONT-SIZE: 12pt">MD5</SPAN>、<SPAN lang=EN-US>SHA1</SPAN>实现方法:</FONT></B><SPAN lang=EN-US><o:p></o:p></SPAN></P>
<P class=MsoNormal><FONT face=宋体 size=3><SPAN style="FONT-SIZE: 12pt">之前上网找过一个长达<SPAN lang=EN-US>10</SPAN>来页的<SPAN lang=EN-US>T-Sql</SPAN>下<SPAN lang=EN-US>MD5</SPAN>算法函数,感觉真不是一般的麻烦。今天偶然在网上找到一篇文章,使用了一个<SPAN lang=EN-US>hashbytes</SPAN>函数,发现一切竟是如此的简单。且看:<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></FONT></P>
<P class=MsoNormal><FONT face=宋体 size=3><SPAN lang=EN-US style="FONT-SIZE: 12pt">select hashbytes('MD5','12345') as MD5,hashbytes('SHA1','12345') as SHA1<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=宋体 size=3><SPAN style="FONT-SIZE: 12pt">不过呢,它返回的可是<SPAN lang=EN-US>varbinary</SPAN>的类型,你如果想要文本字符串,可以使用函数<SPAN lang=EN-US>sys.fn_VarBinToHexStr(HashBytes('MD5', pwd))</SPAN>来得到。<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></FONT></P>
<P class=MsoNormal><B><FONT face=宋体 size=3><SPAN lang=EN-US style="FONT-WEIGHT: bold; FONT-SIZE: 12pt"><o:p> </o:p></SPAN></FONT></B></P>
<P class=MsoNormal><FONT face=宋体 size=3><SPAN lang=EN-US style="FONT-SIZE: 12pt"><o:p> </o:p></SPAN></FONT></P></TD></TR></TBODY></TABLE>
<br>
<a href=http://fine3x.com>正好软件</>
- 1
- 2
前往页