Solidity 中的哈希是什么?

Posted m0_73054711

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Solidity 中的哈希是什么?相关的知识,希望对你有一定的参考价值。

加密哈希函数是一种算法,它以任意数量的数据作为输入并生成固定大小的加密文本。即使输入的微小变化也会产生完全不同的输出。

Solidity 提供以下加密功能:

功能

特性

keccak256(bytes memory) 返回 (bytes32)计算输入的 Keccak-256 哈希
sha256(bytes memory) 返回 (bytes32)计算输入的 SHA-256 哈希
ripemd160(bytes memory) 返回 (bytes20) 计算输入的 RIPEMD-160 哈希
sha256(bytes memory) 返回 (bytes32) 计算输入的 SHA-256 哈希
ecrecover(bytes32 hash, uint8 v, bytes32 r, bytes32 s) 返回(地址)
从用于加密的椭圆曲线签名 中恢复与公钥关联的地址, 
如果发生错误则返回零。这些参数对应于 ECDSA 
签名值。

以太坊使用 Keccak 进行散列,这与 SHA_256 相似但不同。对于工作量证明,它使用了一种名为ethash的自定义方案,该方案旨在抗 ASIC。

示例:在下面的示例

// pragma version
pragma solidity ^0.6.6;

// Creating a contract
contract helloGeeks

	// We want hash to be of 8 digits
	// hence we store 10^8 which is
	// used to extract first 8 digits
	// later by Modulus
	uint hashDigits = 8;
	
	// Equivalent to 10^8 = 8
	uint hashModulus = 10 ** hashDigits;

	// Function to generate the hash value
	function _generateRandom(string memory _str)
		public view returns (uint)
	
		// "packing" the string into bytes and
		// then applying the hash function.
		// This is then typecasted into uint.
		uint random =
			uint(keccak256(abi.encodePacked(_str)));
			
		// Returning the generated hash value
		return random % hashModulus;
	


中,创建了一个智能合约以将字符串作为输入并给出 8 位哈希作为输出。

输入:

极客换极客

输出:

—solidity中的HelloWord

区块链入门系列文章—solidity中的HelloWord


文章目录


前言

本系列教程将从零开始记入笔者学习区块链的过程,欢迎批评指正。


一、solidity是什么?

Solidity 的代码都涵盖在智能合约里面. 一个智能合约就是以太坊应用的最小单元, 所有的变量和函数都属于一个智能合约, 它是你所有应用的起点。

二、智能合约的HelloWorld

1.引入solidity版本

代码如下(示例):
pragma solidity ^0.4.19;
0.4.19代表的是你使用的solidity版本号,对应代码书写过程中一些语法规则每个版本都有可能不同,所以在写智能合约的时候,在第一行必须指定solidity的版本号。

2.编写空合约

代码如下(示例):

contract HelloWorld 


contract修饰符代表此时你定义了一个智能合约,他的名字叫做HellWorld,所以区块链技术是不是也很简单?这样一行代码就已经完成了一个智能合约的编写。


练习时间

尝试定义一个智能合约,该合约名字为transfer,使用的solidity版本号为0.5.9
欢迎读者在评论区写下您的答案。

以上是关于Solidity 中的哈希是什么?的主要内容,如果未能解决你的问题,请参考以下文章

22区块链世界的哈希算法?什么是哈希值?

面试官问:一致性哈希算法是什么?怎么判定哈希算法的好坏?

哈希算法在电子数据取证中的应用探讨

区块链概念1:Hash 算法

哈希算法在以太坊中的妙用

科技康康区块链中的哈希算法