File: Hashing-Functions.html

package info (click to toggle)
octave 10.3.0-1
  • links: PTS, VCS
  • area: main
  • in suites:
  • size: 145,388 kB
  • sloc: cpp: 335,976; ansic: 82,241; fortran: 20,963; objc: 9,402; sh: 8,756; yacc: 4,392; lex: 4,333; perl: 1,544; java: 1,366; awk: 1,259; makefile: 659; xml: 192
file content (137 lines) | stat: -rw-r--r-- 5,638 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
<!DOCTYPE html>
<html>
<!-- Created by GNU Texinfo 7.1.1, https://www.gnu.org/software/texinfo/ -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Hashing Functions (GNU Octave (version 10.3.0))</title>

<meta name="description" content="Hashing Functions (GNU Octave (version 10.3.0))">
<meta name="keywords" content="Hashing Functions (GNU Octave (version 10.3.0))">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta name="viewport" content="width=device-width,initial-scale=1">

<link href="index.html" rel="start" title="Top">
<link href="Concept-Index.html" rel="index" title="Concept Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="System-Utilities.html" rel="up" title="System Utilities">
<link href="System-Information.html" rel="prev" title="System Information">
<style type="text/css">
<!--
a.copiable-link {visibility: hidden; text-decoration: none; line-height: 0em}
div.example {margin-left: 3.2em}
span:hover a.copiable-link {visibility: visible}
strong.def-name {font-family: monospace; font-weight: bold; font-size: larger}
-->
</style>
<link rel="stylesheet" type="text/css" href="octave.css">


</head>

<body lang="en">
<div class="section-level-extent" id="Hashing-Functions">
<div class="nav-panel">
<p>
Previous: <a href="System-Information.html" accesskey="p" rel="prev">System Information</a>, Up: <a href="System-Utilities.html" accesskey="u" rel="up">System Utilities</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Concept-Index.html" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<h3 class="section" id="Hashing-Functions-1"><span>36.12 Hashing Functions<a class="copiable-link" href="#Hashing-Functions-1"> &para;</a></span></h3>

<p>It is often necessary to find if two strings or files are identical.
This might be done by comparing them character by character and looking
for differences.  However, this can be slow, and so comparing a hash of
the string or file can be a rapid way of finding if the files differ.
</p>
<p>Another use of the hashing function is to check for file integrity.  The
user can check the hash of the file against a known value and find if
the file they have is the same as the one that the original hash was
produced with.
</p>
<p>Octave supplies the <code class="code">hash</code> function to calculate hash values of
strings and files, the latter in combination with the <code class="code">fileread</code>
function.  The <code class="code">hash</code> function supports many commonly used hash
methods.
</p>
<a class="anchor" id="XREFhash"></a><span style="display:block; margin-top:-4.5ex;">&nbsp;</span>


<dl class="first-deftypefn">
<dt class="deftypefn" id="index-hash"><span><code class="def-type"><var class="var">hashval</var> =</code> <strong class="def-name">hash</strong> <code class="def-code-arguments">(&quot;<var class="var">hashfcn</var>&quot;, <var class="var">str</var>)</code><a class="copiable-link" href="#index-hash"> &para;</a></span></dt>
<dd><p>Calculate the hash value of the string <var class="var">str</var> using the hash function
<var class="var">hashfcn</var>.
</p>
<p>The available hash functions are given in the table below.
</p>
<dl class="table">
<dt>&lsquo;<samp class="samp">MD2</samp>&rsquo;</dt>
<dd><p>Message-Digest Algorithm 2 (RFC 1319).
</p>
</dd>
<dt>&lsquo;<samp class="samp">MD4</samp>&rsquo;</dt>
<dd><p>Message-Digest Algorithm 4 (RFC 1320).
</p>
</dd>
<dt>&lsquo;<samp class="samp">MD5</samp>&rsquo;</dt>
<dd><p>Message-Digest Algorithm 5 (RFC 1321).
</p>
</dd>
<dt>&lsquo;<samp class="samp">SHA1</samp>&rsquo;</dt>
<dd><p>Secure Hash Algorithm 1 (RFC 3174)
</p>
</dd>
<dt>&lsquo;<samp class="samp">SHA224</samp>&rsquo;</dt>
<dd><p>Secure Hash Algorithm 2 (224 Bits, RFC 3874)
</p>
</dd>
<dt>&lsquo;<samp class="samp">SHA256</samp>&rsquo;</dt>
<dd><p>Secure Hash Algorithm 2 (256 Bits, RFC 6234)
</p>
</dd>
<dt>&lsquo;<samp class="samp">SHA384</samp>&rsquo;</dt>
<dd><p>Secure Hash Algorithm 2 (384 Bits, RFC 6234)
</p>
</dd>
<dt>&lsquo;<samp class="samp">SHA512</samp>&rsquo;</dt>
<dd><p>Secure Hash Algorithm 2 (512 Bits, RFC 6234)
</p></dd>
</dl>

<p>To calculate for example the MD5 hash value of the string
<code class="code">&quot;abc&quot;</code> the <code class="code">hash</code> function is called as follows:
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">hash (&quot;md5&quot;, &quot;abc&quot;)
     -| ans = 900150983cd24fb0d6963f7d28e17f72
</pre></div></div>

<p>For the same string, the SHA-1 hash value is calculated with:
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">hash (&quot;sha1&quot;, &quot;abc&quot;)
     -| ans = a9993e364706816aba3e25717850c26c9cd0d89d
</pre></div></div>

<p>And to compute the hash value of a file, e.g., <code class="code">file = &quot;file.txt&quot;</code>,
call <code class="code">hash</code> in combination with the <code class="code">fileread</code>:
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">hash (&quot;md5&quot;, fileread (file));
</pre></div></div>

</dd></dl>



</div>
<hr>
<div class="nav-panel">
<p>
Previous: <a href="System-Information.html">System Information</a>, Up: <a href="System-Utilities.html">System Utilities</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Concept-Index.html" title="Index" rel="index">Index</a>]</p>
</div>



</body>
</html>