A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/multiformats/ruby-multihash below:

multiformats/ruby-multihash: A simple multihash (https://github.com/multiformats/multihash) implementation for ruby.

This project is no longer maintained and has been archived.

A simple Multihash implementation for ruby.

A multihash is a digest with an embedded hash function code (and length) ('cause you never know). It was developed primarily for use with IPFS, but is not specific to it.

Add this line to your application's Gemfile:

And then execute:

Or install it yourself as:

$ gem install multihashes

This is a low-level library. Bring your own digest. A binary digest goes in, a binary digest goes out. To compute a sha256 multihash that would work nicely with IPFS:

require 'multihashes'
require 'digest'

digest = Digest::SHA256.digest 'Dade Murphy will never figure this one out'
multihash_binary_string = Multihashes.encode digest, 'sha2-256'

multihash_binary_string.unpack('H*').first # hex: "1220142711d38ca7a33c521841..."

out = Multihashes.decode multihash_binary_string
# => {:code=>18, :hash_function=>"sha2-256", :length=>32, :digest=>"\x14'\x11\xD3\x8C\xA7\xA3<R\x18Ao\x8F\xFC\xC6FH\xCAF\x16\xA6%\xB5\xE0\xA0\xAB=\xA1\x91\x1D]z"}

Hash function names (latest is here, current multicodec is here)

code name comment 0x00 identity raw binary 0x11 sha1 0x12 sha2-256 0x13 sha2-512 0x14 sha3-512 0x15 sha3-384 0x16 sha3-256 0x17 sha3-224 0x18 shake-128 0x19 shake-256 0x1a keccak-224 keccak has variable output length. The number specifies the core length 0x1b keccak-256 0x1c keccak-384 0x1d keccak-512 0x22 murmur3-128 0x23 murmur3-32 0x56 dbl-sha2-256 0xd4 md4 0xd4 md5 0xd6 bmt Binary Merkle Tree Hash 0x1100 x11 0xb201 blake2b-8 blake2b consists of 64 output lengths that give different hashes 0xb202 blake2b-16 0xb203 blake2b-24 ... 0xb23f blake2b-504 0xb240 blake2b-512 0xb241 blake2s-8 blake2s consists of 32 output lengths that give different hashes 0xb242 blake2s-16 0xb243 blake2s-24 ... 0xb25f blake2s-248 0xb260 blake2s-256 0xb301 skein256-8 skein256 consists of 32 output lengths that give different hashes 0xb302 skein256-16 0xb303 skein256-24 ... 0xb31f skein256-248 0xb320 skein256-256 0xb321 skein512-8 skein256 consists of 32 output lengths that give different hashes 0xb322 skein512-16 0xb323 skein512-24 ... 0xb35f skein512-504 0xb360 skein512-512 0xb361 skein1024-8 skein1024 consists of 128 output lengths that give different hashes 0xb362 skein1024-16 0xb363 skein1024-24 ... 0xb3df skein1024-1016 0xb3e0 skein1024-1024

After checking out the repo, run bin/setup to install dependencies. Then, run rake test to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install.

@kyledrake

Bug reports and pull requests are welcome on GitHub at https://github.com/multiformats/ruby-multihash.

Check out our contributing document for more information on how we work, and about contributing in general. Please be aware that all interactions related to multiformats are subject to the IPFS Code of Conduct.

Small note: If editing the README, please conform to the standard-readme specification.

The gem is available as open source under the terms of the MIT License © 2015 Kyle Drake.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4