summaryrefslogtreecommitdiff
path: root/devdocs/go/crypto%2Fsha256%2Findex.html
blob: a11414b21f00b19a36a2dad2415c1a4c0b6f097f (plain)
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
<h1> Package sha256  </h1>     <ul id="short-nav">
<li><code>import "crypto/sha256"</code></li>
<li><a href="#pkg-overview" class="overviewLink">Overview</a></li>
<li><a href="#pkg-index" class="indexLink">Index</a></li>
<li><a href="#pkg-examples" class="examplesLink">Examples</a></li>
</ul>     <h2 id="pkg-overview">Overview </h2> <p>Package sha256 implements the SHA224 and SHA256 hash algorithms as defined in FIPS 180-4. </p>     <h2 id="pkg-index">Index </h2>  <ul id="manual-nav">
<li><a href="#pkg-constants">Constants</a></li>
<li><a href="#New">func New() hash.Hash</a></li>
<li><a href="#New224">func New224() hash.Hash</a></li>
<li><a href="#Sum224">func Sum224(data []byte) [Size224]byte</a></li>
<li><a href="#Sum256">func Sum256(data []byte) [Size]byte</a></li>
</ul> <div id="pkg-examples"> <h3>Examples</h3>  <dl> <dd><a class="exampleLink" href="#example_New">New</a></dd> <dd><a class="exampleLink" href="#example_New_file">New (File)</a></dd> <dd><a class="exampleLink" href="#example_Sum256">Sum256</a></dd> </dl> </div> <h3>Package files</h3> <p>  <span>sha256.go</span> <span>sha256block.go</span> <span>sha256block_amd64.go</span> <span>sha256block_decl.go</span>  </p>   <h2 id="pkg-constants">Constants</h2> <p>The blocksize of SHA256 and SHA224 in bytes. </p>
<pre data-language="go">const BlockSize = 64</pre> <p>The size of a SHA256 checksum in bytes. </p>
<pre data-language="go">const Size = 32</pre> <p>The size of a SHA224 checksum in bytes. </p>
<pre data-language="go">const Size224 = 28</pre> <h2 id="New">func <span>New</span>  </h2> <pre data-language="go">func New() hash.Hash</pre> <p>New returns a new hash.Hash computing the SHA256 checksum. The Hash also implements <span>encoding.BinaryMarshaler</span> and <span>encoding.BinaryUnmarshaler</span> to marshal and unmarshal the internal state of the hash. </p>   <h4 id="example_New"> <span class="text">Example</span>
</h4> <p>Code:</p> <pre class="code" data-language="go">h := sha256.New()
h.Write([]byte("hello world\n"))
fmt.Printf("%x", h.Sum(nil))
</pre> <p>Output:</p> <pre class="output" data-language="go">a948904f2f0f479b8f8197694b30184b0d2ed1c1cd2a1ec0fb85d299a192a447
</pre>      <h4 id="example_New_file"> <span class="text">Example (File)</span>
</h4> <p>Code:</p> <pre class="code" data-language="go">
f, err := os.Open("file.txt")
if err != nil {
    log.Fatal(err)
}
defer f.Close()

h := sha256.New()
if _, err := io.Copy(h, f); err != nil {
    log.Fatal(err)
}

fmt.Printf("%x", h.Sum(nil))
</pre>   <h2 id="New224">func <span>New224</span>  </h2> <pre data-language="go">func New224() hash.Hash</pre> <p>New224 returns a new hash.Hash computing the SHA224 checksum. </p>
<h2 id="Sum224">func <span>Sum224</span>  <span title="Added in Go 1.2">1.2</span> </h2> <pre data-language="go">func Sum224(data []byte) [Size224]byte</pre> <p>Sum224 returns the SHA224 checksum of the data. </p>
<h2 id="Sum256">func <span>Sum256</span>  <span title="Added in Go 1.2">1.2</span> </h2> <pre data-language="go">func Sum256(data []byte) [Size]byte</pre> <p>Sum256 returns the SHA256 checksum of the data. </p>   <h4 id="example_Sum256"> <span class="text">Example</span>
</h4> <p>Code:</p> <pre class="code" data-language="go">sum := sha256.Sum256([]byte("hello world\n"))
fmt.Printf("%x", sum)
</pre> <p>Output:</p> <pre class="output" data-language="go">a948904f2f0f479b8f8197694b30184b0d2ed1c1cd2a1ec0fb85d299a192a447
</pre><div class="_attribution">
  <p class="_attribution-p">
    &copy; Google, Inc.<br>Licensed under the Creative Commons Attribution License 3.0.<br>
    <a href="http://golang.org/pkg/crypto/sha256/" class="_attribution-link">http://golang.org/pkg/crypto/sha256/</a>
  </p>
</div>