Vyper 入门: 23. hash 哈希函数(Hash functions) 是现代密码学和区块链技术中的重要工具。它们使我们能够通过将数据转换为固定长度的字符串(称为哈希)来安全地存储和传输数据。其中 是一种在区块链社区中广受欢迎的哈希函数,在智能合约中常用于数据验证、安全性和效率。 哈希函数的特性: 确定性: 哈希正向运算简单且唯一,反之只能通过暴力破解 高效性: 从输入的消息到哈希的运算高效 雪崩效应: 微小的输入变化导致哈希值大幅变化 抗碰撞性: 不同的输入产生相同的哈希值的概率极低 Vyper 中提供了两种内置的哈希函数: 和 keccak256 在以太坊中最常用的哈希函数 语法: : 需要哈希的值 示例代码: sha256 Vyper 中另一种常见的哈希函数,提供不同于
哈希函数(Hash functions) 是现代密码学和区块链技术中的重要工具。它们使我们能够通过将数据转换为固定长度的字符串(称为哈希)来安全地存储和传输数据。其中 Keccak256 是一种在区块链社区中广受欢迎的哈希函数,在智能合约中常用于数据验证、安全性和效率。
Vyper 中提供了两种内置的哈希函数: keccak256 和 sha256
在以太坊中最常用的哈希函数
语法:
keccak256(_value)→ bytes32
value: 需要哈希的值示例代码:
@view @external def keccak(_value: Bytes[100]) -> bytes32: return keccak256(_value)
# keccak(b"potato") 0x9e159dfcfe557cc1ca6c716e87af98fdcb94cd8c832386d0429b2b7bec02754f
Vyper 中另一种常见的哈希函数,提供不同于 keccak256 的哈希算法
语法:
sha256(_value)→ bytes32
value: 需要哈希的值示例代码:
@view @external def sha(_value: Bytes[100]) -> bytes32: return sha256(_value)
# sha(b"potato") 0xe91c254ad58860a02c788dfb5c1a65d6a8846ab1dc649631c7db16fef4af2dec
本节中,我们介绍了两种哈希函数的使用,需要注意的是,虽然 keccak256 和 sha256 在当前是安全的,但随着计算能力的提高,它们可能会变得不那么安全