⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ch08_57.htm

📁 by Randal L. Schwartz and Tom Phoenix ISBN 0-596-00132-0 Third Edition, published July 2001. (See
💻 HTM
字号:
<html><head><title>Digest (Perl in a Nutshell, 2nd Edition)</title><link rel="stylesheet" type="text/css" href="../style/style1.css" /><meta name="DC.Creator" content="Stephen Spainhour" /><meta name="DC.Format" content="text/xml" scheme="MIME" /><meta name="DC.Language" content="en-US" /><meta name="DC.Publisher" content="O'Reilly &amp; Associates, Inc." /><meta name="DC.Source" scheme="ISBN" content="0596002416L" /><meta name="DC.Subject.Keyword" content="stuff" /><meta name="DC.Title" content="Perl in a Nutshell, 2nd Edition" /><meta name="DC.Type" content="Text.Monograph" /></head><body bgcolor="#ffffff"><img src="gifs/smbanner.gif" usemap="#banner-map" border="0" alt="Book Home" /><map name="banner-map"><area shape="rect" coords="1,-2,616,66" href="index.htm" alt="Java and XSLT" /><area shape="rect" coords="629,-11,726,25" href="jobjects/fsearch.htm" alt="Search this book" /></map><div class="navbar"><table width="684" border="0"><tr><td align="left" valign="top" width="228"><a href="ch08_56.htm"><img src="../gifs/txtpreva.gif" alt="Previous" border="0" /></a></td><td align="center" valign="top" width="228" /><td align="right" valign="top" width="228"><a href="ch08_58.htm"><img src="../gifs/txtnexta.gif" alt="Next" border="0" /></a></td></tr></table></div><h2 class="sect1">8.57. Digest</h2><p><a name="INDEX-1364" />TheDigest modules (Digest::MD2, Digest::MD5, Digest::SHA1, andDigest::-HMAC) calculate a digest of data that they encounter. Thesedigests are often referred to as"fingerprints,""hashes," or"sums." The Digest modules return asmall, fixed-length string, depending on how you'verequested your data. If you change your data and regenerate thedigest, the digest will be different each time the data itselfchanges. As of Perl 5.8, the Digest modules are bundled with the Perlsource kit.</p><p>The Digest modules both a functional interface and an object-orientedinterface. If you use the object-oriented inteface, you have thebenefit of being able to send data of arbitrary length. You can alsotell the Digest module to read files directly.</p><p>Digest delivers the hashed data in one of three formats: binary, hex,or base64. The following example uses Digest and calculates an MD5sum of a string, <tt class="literal">$text</tt>, that represents the data.The data is output in hexadecimal form.</p><blockquote><pre class="code">#!/usr/local/bin/perl -wuse Digest;my $text = 'Be the ball, Danny!';my $md5 = Digest-&gt;MD5;$md5-&gt;add($text);my $hashed = $md5-&gt;hexdigest;print "The sum of \$text is [$hashed].\n";</pre></blockquote><p>This gives you:</p><blockquote><pre class="code">The sum of $text is [6eec91414372ad157fc9d3d15b496d93].</pre></blockquote><p>Digest implements the following functions for the object-orientedinterface. These functions are available to all of the Digestmodules.</p><a name="INDEX-1365" /><div class="refentry"><table width="515" border="0" cellpadding="5"><tr><td align="left"><font size="+1"><b>reset</b></font></td><td align="right"><i></i></td></tr></table><hr width="515" size="3" noshade="true" align="left" color="black" /><pre>reset()</pre><p>Alias for <tt class="literal">new</tt>.</p></div><a name="INDEX-1366" /><div class="refentry"><table width="515" border="0" cellpadding="5"><tr><td align="left"><font size="+1"><b>add</b></font></td><td align="right"><i></i></td></tr></table><hr width="515" size="3" noshade="true" align="left" color="black" /><pre>add(<em class="replaceable">data</em>, ...)</pre><p>Appends <em class="replaceable">data</em> to the message for which youcalculate the digest. <tt class="literal">add</tt> returns the Digestobject itself.</p></div><a name="INDEX-1367" /><div class="refentry"><table width="515" border="0" cellpadding="5"><tr><td align="left"><font size="+1"><b>addfile</b></font></td><td align="right"><i></i></td></tr></table><hr width="515" size="3" noshade="true" align="left" color="black" /><pre>addfile(<em class="replaceable">io_handle</em>)</pre><p>Reads <em class="replaceable">io_handle</em> until end-of-file and,like <tt class="literal">add</tt>, appends the content to the message forwhich you calculate the digest. <tt class="literal">addfile</tt> returnsthe Digest object itself.</p></div><a name="INDEX-1368" /><div class="refentry"><table width="515" border="0" cellpadding="5"><tr><td align="left"><font size="+1"><b>b64digest</b></font></td><td align="right"><i></i></td></tr></table><hr width="515" size="3" noshade="true" align="left" color="black" /><pre>b64digest()</pre><p>Same as <tt class="literal">digest</tt>, but returns the digest inbase64-encoded form.</p></div><a name="INDEX-1369" /><div class="refentry"><table width="515" border="0" cellpadding="5"><tr><td align="left"><font size="+1"><b>digest</b></font></td><td align="right"><i></i></td></tr></table><hr width="515" size="3" noshade="true" align="left" color="black" /><pre>digest()</pre><p>Returns the binary digest for the message. Note that<tt class="literal">digest</tt> is a destructive operation, in that theDigest object is reset so it can be used to create another value.</p></div><a name="INDEX-1370" /><div class="refentry"><table width="515" border="0" cellpadding="5"><tr><td align="left"><font size="+1"><b>hexdigest</b></font></td><td align="right"><i></i></td></tr></table><hr width="515" size="3" noshade="true" align="left" color="black" /><pre>hexdigest()</pre><p>Same as <tt class="literal">digest</tt>, but returns digest in hexadecimalform.</p></div><hr width="684" align="left" /><div class="navbar"><table width="684" border="0"><tr><td align="left" valign="top" width="228"><a href="ch08_56.htm"><img src="../gifs/txtpreva.gif" alt="Previous" border="0" /></a></td><td align="center" valign="top" width="228"><a href="index.htm"><img src="../gifs/txthome.gif" alt="Home" border="0" /></a></td><td align="right" valign="top" width="228"><a href="ch08_58.htm"><img src="../gifs/txtnexta.gif" alt="Next" border="0" /></a></td></tr><tr><td align="left" valign="top" width="228">8.56. diagnostics</td><td align="center" valign="top" width="228"><a href="index/index.htm"><img src="../gifs/index.gif" alt="Book Index" border="0" /></a></td><td align="right" valign="top" width="228">8.58. Digest::MD5</td></tr></table></div><hr width="684" align="left" /><img src="../gifs/navbar.gif" usemap="#library-map" border="0" alt="Library Navigation Links" /><p><p><font size="-1"><a href="copyrght.htm">Copyright &copy; 2002</a> O'Reilly &amp; Associates. All rights reserved.</font></p><map name="library-map"><area shape="rect" coords="1,0,85,94" href="../index.htm"><area shape="rect" coords="86,1,178,103" href="../lwp/index.htm"><area shape="rect" coords="180,0,265,103" href="../lperl/index.htm"><area shape="rect" coords="267,0,353,105" href="../perlnut/index.htm"><area shape="rect" coords="354,1,446,115" href="../prog/index.htm"><area shape="rect" coords="448,0,526,132" href="../tk/index.htm"><area shape="rect" coords="528,1,615,119" href="../cookbook/index.htm"><area shape="rect" coords="617,0,690,135" href="../pxml/index.htm"></map></body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -