📄 数据库开发md5算法在pb里面地完成[库库中文网]-系统编程教程 qqgb_com.htm
字号:
<tr>
<td width="735" bgcolor="EEEEEE">
<table width="725" height="5" border="0" cellpadding="0" cellspacing="0">
<tr>
<td></td>
</tr>
</table>
<table width="725" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td background="/show/txtbg.jpg" bgcolor="#E0E0E0">
<table width="700" border="0" align="center" cellpadding="0" cellspacing="0" style="TABLE-LAYOUT: fixed; WORD-BREAK: break-all">
<tr>
<td><div class="title1">
<h1 align="center">MD5算法在PB里面地完成</h1>
</div></td>
</tr>
</table> </td>
</tr>
<tr>
<td class="td3"><table width="723" height="170" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF">
<tr>
<td width="4" height="172"> </td>
<td width="58" height="170" align="center" valign="middle" style="border-top:#BEBEBE 1px solid;border-bottom:#BEBEBE 1px solid;border-left:#bebebe 1px solid; "><img src="/show/con3.gif" width="57" height="250" border="0"></td>
<td width="258" align="center" valign="top" style="border-top:#BEBEBE 1px solid;border-right:#BEBEBE 1px solid;border-bottom:#BEBEBE 1px solid;border-left:#fff 1px solid; "><table width="100%" border="0" cellpadding="0" cellspacing="0" background="/show/con2.gif">
<tr align="center" >
<td height="31" ><a href="http://www.qqgb.com/Special/tujian/Index.html" target="_blank">学院最新推荐文章</a></td>
</tr>
<tr bgcolor="#FFFFFF">
<td height="138" valign="top" bgcolor="#FFFFFF"><div class="12blueb"><script language='javascript' src='/Exam/JS/artQQGB3.js'></script></div></td>
</tr>
</table></td>
<td width="100" align="center" valign="top" style="border-top:#BEBEBE 1px solid;border-right:#BEBEBE 1px solid;border-bottom:#BEBEBE 1px solid;border-left:#fff 1px solid; ">
<table width="100%" border="0" cellpadding="0" cellspacing="0" background="/show/sp_bg.gif">
<tr align="center" >
<td width="50%" height="31" >PS教程推荐</td>
</tr>
<tr bgcolor="#FFFFFF">
<td ><script language='javascript' src='/Article/JS/qqgbpstu.js'></script></td>
</tr>
</table></td>
<td width="300" align="center" valign="top" style="border-top:#BEBEBE 1px solid;border-right:#BEBEBE 1px solid;border-bottom:#BEBEBE 1px solid;border-left:#fff 1px solid; "><script language='javascript' src='http://www.qQGb.com/tech/qqg300250con1sys1.js'></script></td>
<td width="4"> </td>
</tr>
</table>
<table width="700" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="4"></td>
</tr>
</table></td>
</tr>
</table>
<table width="700" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="4"></td>
</tr>
</table></td>
<td width="267" bgcolor="EEEEEE"><script language='javascript' src='/bar/200612/con1.js'></script></td>
</tr>
</table>
<table cellSpacing=0 cellPadding=0 width=1002 align=center border=0 class="td1">
<tr>
<td width="724" bgcolor="#FFFFFF" class="td5"> <div align="right"><img src="/show/3dian.gif" width="8" height="11">『MD5算法在PB里面地完成』<strong>如果文章有大量图片,显示会较慢,请等待图片下载完成</strong> </div></td>
<td width="276" bgcolor="#FFFFFF" class="td5"> </td>
</tr>
</table>
<table height=52 cellSpacing=0 cellPadding=0 width=1002 align=center border=0 class="td1">
<tr>
<td width="735" height="26" rowspan="2" valign="top" bgcolor="eeeeee"><table width="725" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="4"></td>
</tr>
</table>
<table width="725" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF">
<tr>
<td><img src="/show/txtbg1.gif" width="725" height="6"></td>
</tr>
<tr>
<td height="20" class="td2"><table width="712" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td bgcolor="#F3F3F3" class="td4"><div align="right">点击数:<script language='javascript' src='/Program/GetHits.asp?ArticleID=149042'></script> 更新时间:2006-6-27 </div></td>
</tr>
</table></td>
</tr>
<tr>
<td valign="top" class="td3"><table width="700" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="6"></td>
</tr>
</table>
<table width="712" border="0" align="center" cellpadding="10" cellspacing="0">
<tr>
<td align="left" bgcolor="#FFFFFF" class="td4"><div class="red1"><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<script language='javascript' src='http://www.qqgB.com/tech/pcv1con1firefox.js'></script></td>
</tr>
</table></div><div class="14black">
本文给出MD5算法在PB中实现的完整源代码</p></div><div class="con_all"><p><div align="left"> MD5算法自从1991开发出来以后广泛用于数字签名和加密解密领域。目前使用PB外的语言可以较为简单地实现了MD5加密,使用PB来实现的比较鲜见,这可能有如下两方面的原因:一,PB在位运算方面未提供直接使用的函数,要实现位运算比较麻烦;二,在PB(PB10之前的版本)中无法直接获取字符的unicode值。如果能够攻破这两个难点,在熟悉MD5算法之后应该比较容易地在PB中实现MD5加密。</div>
<div align="left"> PB虽然未提供位运算方面直接使用的函数,但如果了解位运算的法则,同样可以实现位运算。不论是二元运算还是一元运算,参与运算的表达式都以补码方法表示,其结果也以补码表示。通用的做法是创建一个专门用于位运算的对象,使其实现进制之间的转化、位运算、求反、求补等功能,然后在加密时调用。关于根据原码求其反码、补码的运算法则可以参考相关的计算机书籍。</div>
<div align="left"> 在PB中虽然无法直接获取字符的unicode值(据说PB10有ASCW函数可以实现),但调用WINAPI可以实现,这个函数就是MultiByteToWideChar(注意该函数在PB环境下区分大小写),可运行于Windows95及以后的Windows操作系统。顺便提一下,目前网上大多数MD5加密算法中只取字符的ASCII,因而对于非英文语言的字符加密支持不够。</div>
<div align="left"> 以下是MD5算法在PB中实现的源代码,读者只需将其保存到sru格式的文件中然后导入到PB库文件中生成相应对象,然后依据PB的对象调用规则便可使用。由于作者水平有限,部分代码段未提供详细注释,敬请原谅。所有代码在PB8.0.3Build9704和Windows2000 AdvancedServer Service Pack4环境下运行正确。</div>
<div style="TEXT-INDENT: 21pt" align="left">限于篇幅,本文不给出MD5算法的加密原理,读者可查阅MD5算法的详细资料,如范本文件<a href="http://www.ietf.org/rfc/rfc1321.txt">http://www.ietf.org/rfc/rfc1321.txt</a>,在实现时可参考PFC中pfc_n_cst_numerical对象提供的位运算函数及其它语言(如C/C++/Delphi/ASP/MSSQLSERVER2000)实现MD5加密的源代码。</div>
<div style="TEXT-INDENT: 21pt" align="left"></div>
<div style="MARGIN: 0cm 0cm 0pt 42pt; TEXT-INDENT: -21pt" align="left">一,nvo_numerical对象,提供位运算功能。</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">forward</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">global type nvo_numerical from nonvisualobject</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">end type</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">end forward</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">global type nvo_numerical from nonvisualobject autoinstantiate</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">end type</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left"> </div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">forward prototypes</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">public function string of_binary (unsignedlong aul_decimal)</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">public function string of_binary (long al_decimal)</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">public function unsignedlong of_binarytodecimalunsigned (string as_binary)</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">public function long of_decimal (string as_binary)</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">public function string of_bitwisenot (string as_bitvalue)</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">public function string of_bitwisefill (string as_bitvalue)</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">public function long of_bitwiseand (long al_value1, long al_value2)</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">public function long of_bitwiseor (long al_value1, long al_value2)</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">public function long of_bitwisexor (long al_value1, long al_value2)</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">end prototypes</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left"> </div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">public function string of_binary (unsignedlong aul_decimal);</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">/*******************************************************************</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">函数名称:of_binary()</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">参数: aul_decimal unsignedlong 数字</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">返回值: string 二进制字符</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">功能描述:将数字转为二进制字符</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">创建人: 康剑民</div>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -