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

📄 digest::sha.3

📁 视频监控网络部分的协议ddns,的模块的实现代码,请大家大胆指正.
💻 3
📖 第 1 页 / 共 2 页
字号:
.\" Automatically generated by Pod::Man 2.16 (Pod::Simple 3.05).\".\" Standard preamble:.\" ========================================================================.de Sh \" Subsection heading.br.if t .Sp.ne 5.PP\fB\\$1\fR.PP...de Sp \" Vertical space (when we can't use .PP).if t .sp .5v.if n .sp...de Vb \" Begin verbatim text.ft CW.nf.ne \\$1...de Ve \" End verbatim text.ft R.fi...\" Set up some character translations and predefined strings.  \*(-- will.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left.\" double quote, and \*(R" will give a right double quote.  \*(C+ will.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,.\" nothing in troff, for use with C<>..tr \(*W-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'.ie n \{\.    ds -- \(*W-.    ds PI pi.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch.    ds L" "".    ds R" "".    ds C` "".    ds C' ""'br\}.el\{\.    ds -- \|\(em\|.    ds PI \(*p.    ds L" ``.    ds R" '''br\}.\".\" Escape single quotes in literal strings from groff's Unicode transform..ie \n(.g .ds Aq \(aq.el       .ds Aq '.\".\" If the F register is turned on, we'll generate index entries on stderr for.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index.\" entries marked with X<> in POD.  Of course, you'll have to process the.\" output yourself in some meaningful fashion..ie \nF \{\.    de IX.    tm Index:\\$1\t\\n%\t"\\$2"...    nr % 0.    rr F.\}.el \{\.    de IX...\}.\".\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2)..\" Fear.  Run.  Save yourself.  No user-serviceable parts..    \" fudge factors for nroff and troff.if n \{\.    ds #H 0.    ds #V .8m.    ds #F .3m.    ds #[ \f1.    ds #] \fP.\}.if t \{\.    ds #H ((1u-(\\\\n(.fu%2u))*.13m).    ds #V .6m.    ds #F 0.    ds #[ \&.    ds #] \&.\}.    \" simple accents for nroff and troff.if n \{\.    ds ' \&.    ds ` \&.    ds ^ \&.    ds , \&.    ds ~ ~.    ds /.\}.if t \{\.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u".    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'.\}.    \" troff and (daisy-wheel) nroff accents.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'.ds 8 \h'\*(#H'\(*b\h'-\*(#H'.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#].ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#].ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#].ds ae a\h'-(\w'a'u*4/10)'e.ds Ae A\h'-(\w'A'u*4/10)'E.    \" corrections for vroff.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'.    \" for low resolution devices (crt and lpr).if \n(.H>23 .if \n(.V>19 \\{\.    ds : e.    ds 8 ss.    ds o a.    ds d- d\h'-1'\(ga.    ds D- D\h'-1'\(hy.    ds th \o'bp'.    ds Th \o'LP'.    ds ae ae.    ds Ae AE.\}.rm #[ #] #H #V #F C.\" ========================================================================.\".IX Title "Digest::SHA 3".TH Digest::SHA 3 "2007-12-18" "perl v5.10.0" "Perl Programmers Reference Guide".\" For nroff, turn off justification.  Always turn off hyphenation; it makes.\" way too many mistakes in technical documents..if n .ad l.nh.SH "NAME"Digest::SHA \- Perl extension for SHA\-1/224/256/384/512.SH "SYNOPSIS".IX Header "SYNOPSIS"In programs:.PP.Vb 1\&                # Functional interface\&\&        use Digest::SHA qw(sha1 sha1_hex sha1_base64 ...);\&\&        $digest = sha1($data);\&        $digest = sha1_hex($data);\&        $digest = sha1_base64($data);\&\&        $digest = sha256($data);\&        $digest = sha384_hex($data);\&        $digest = sha512_base64($data);\&\&                # Object\-oriented\&\&        use Digest::SHA;\&\&        $sha = Digest::SHA\->new($alg);\&\&        $sha\->add($data);               # feed data into stream\&\&        $sha\->addfile(*F);\&        $sha\->addfile($filename);\&\&        $sha\->add_bits($bits);\&        $sha\->add_bits($data, $nbits);\&\&        $sha_copy = $sha\->clone;        # if needed, make copy of\&        $sha\->dump($file);              #       current digest state,\&        $sha\->load($file);              #       or save it on disk\&\&        $digest = $sha\->digest;         # compute digest\&        $digest = $sha\->hexdigest;\&        $digest = $sha\->b64digest;.Ve.PPFrom the command line:.PP.Vb 1\&        $ shasum files\&\&        $ shasum \-\-help.Ve.SH "SYNOPSIS (HMAC-SHA)".IX Header "SYNOPSIS (HMAC-SHA)".Vb 1\&                # Functional interface only\&\&        use Digest::SHA qw(hmac_sha1 hmac_sha1_hex ...);\&\&        $digest = hmac_sha1($data, $key);\&        $digest = hmac_sha224_hex($data, $key);\&        $digest = hmac_sha256_base64($data, $key);.Ve.SH "ABSTRACT".IX Header "ABSTRACT"Digest::SHA is a complete implementation of the \s-1NIST\s0 Secure HashStandard.  It gives Perl programmers a convenient way to calculate\&\s-1SHA\-1\s0, \s-1SHA\-224\s0, \s-1SHA\-256\s0, \s-1SHA\-384\s0, and \s-1SHA\-512\s0 message digests.The module can handle all types of input, including partial-bytedata..SH "DESCRIPTION".IX Header "DESCRIPTION"Digest::SHA is written in C for speed.  If your platform lacks aC compiler, you can install the functionally equivalent (but muchslower) Digest::SHA::PurePerl module..PPThe programming interface is easy to use: it's the same one foundin \s-1CPAN\s0's Digest module.  So, if your applications currentlyuse Digest::MD5 and you'd prefer the stronger security of \s-1SHA\s0,it's a simple matter to convert them..PPThe interface provides two ways to calculate digests:  all-at-once,or in stages.  To illustrate, the following short program computesthe \s-1SHA\-256\s0 digest of \*(L"hello world\*(R" using each approach:.PP.Vb 1\&        use Digest::SHA qw(sha256_hex);\&\&        $data = "hello world";\&        @frags = split(//, $data);\&\&        # all\-at\-once (Functional style)\&        $digest1 = sha256_hex($data);\&\&        # in\-stages (OOP style)\&        $state = Digest::SHA\->new(256);\&        for (@frags) { $state\->add($_) }\&        $digest2 = $state\->hexdigest;\&\&        print $digest1 eq $digest2 ?\&                "whew!\en" : "oops!\en";.Ve.PPTo calculate the digest of an n\-bit message where \fIn\fR is not amultiple of 8, use the \fI\fIadd_bits()\fI\fR method.  For example, considerthe 446\-bit message consisting of the bit-string \*(L"110\*(R" repeated148 times, followed by \*(L"11\*(R".  Here's how to display its \s-1SHA\-1\s0digest:.PP.Vb 4\&        use Digest::SHA;\&        $bits = "110" x 148 . "11";\&        $sha = Digest::SHA\->new(1)\->add_bits($bits);\&        print $sha\->hexdigest, "\en";.Ve.PPNote that for larger bit-strings, it's more efficient to use thetwo-argument version \fIadd_bits($data, \f(CI$nbits\fI)\fR, where \fI\f(CI$data\fI\fR isin the customary packed binary format used for Perl strings..PPThe module also lets you save intermediate \s-1SHA\s0 states to disk, ordisplay them on standard output.  The \fI\fIdump()\fI\fR method generatesportable, human-readable text describing the current state ofcomputation.  You can subsequently retrieve the file with \fI\fIload()\fI\fRto resume where the calculation left off..PPTo see what a state description looks like, just run the following:.PP.Vb 2\&        use Digest::SHA;\&        Digest::SHA\->new\->add("Shaw" x 1962)\->dump;.Ve.PPAs an added convenience, the Digest::SHA module offers routines tocalculate keyed hashes using the \s-1HMAC\-SHA\-1/224/256/384/512\s0algorithms.  These services exist in functional form only, andmimic the style and behavior of the \fI\fIsha()\fI\fR, \fI\fIsha_hex()\fI\fR, and\&\fI\fIsha_base64()\fI\fR functions..PP.Vb 1\&        # Test vector from draft\-ietf\-ipsec\-ciph\-sha\-256\-01.txt\&\&        use Digest::SHA qw(hmac_sha256_hex);\&        print hmac_sha256_hex("Hi There", chr(0x0b) x 32), "\en";.Ve.SH "NIST STATEMENT ON SHA\-1".IX Header "NIST STATEMENT ON SHA-1"\&\fI\s-1NIST\s0 was recently informed that researchers had discovered a wayto \*(L"break\*(R" the current Federal Information Processing Standard \s-1SHA\-1\s0algorithm, which has been in effect since 1994. The researchershave not yet published their complete results, so \s-1NIST\s0 has notconfirmed these findings. However, the researchers are a reputableresearch team with expertise in this area.\fR.PP\&\fIDue to advances in computing power, \s-1NIST\s0 already planned to phaseout \s-1SHA\-1\s0 in favor of the larger and stronger hash functions (\s-1SHA\-224\s0,\&\s-1SHA\-256\s0, \s-1SHA\-384\s0 and \s-1SHA\-512\s0) by 2010. New developments should usethe larger and stronger hash functions.\fR.PPref. <http://www.csrc.nist.gov/pki/HashWorkshop/NIST%20Statement/Burr_Mar2005.html>.SH "PADDING OF BASE64 DIGESTS".IX Header "PADDING OF BASE64 DIGESTS"By convention, \s-1CPAN\s0 Digest modules do \fBnot\fR pad their Base64 output.Problems can occur when feeding such digests to other software thatexpects properly padded Base64 encodings..PPFor the time being, any necessary padding must be done by the user.Fortunately, this is a simple operation: if the length of a Base64\-encodeddigest isn't a multiple of 4, simply append \*(L"=\*(R" characters to the endof the digest until it is:.PP.Vb 3\&        while (length($b64_digest) % 4) {\&                $b64_digest .= \*(Aq=\*(Aq;\&        }.Ve.PPTo illustrate, \fIsha256_base64(\*(L"abc\*(R")\fR is computed to be.PP.Vb 1\&        ungWv48Bz+pBQUDeXa4iI7ADYaOWF3qctBD/YfIAFa0.Ve.PPwhich has a length of 43.  So, the properly padded version is.PP.Vb 1\&        ungWv48Bz+pBQUDeXa4iI7ADYaOWF3qctBD/YfIAFa0=.Ve.SH "EXPORT"

⌨️ 快捷键说明

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