单向性(one-way)
单向性(one-way),从预映射,能够简单迅速的得到散列值,而在计算上不可能构造一个预映射,使其散列结果等于某个特定的散列值,即构造相应的M=J(h)不可行。这样,散列值就能在统计上唯一的表征输入值,因此,密码学上的Hash又被称为”消息摘要(message digest)”,就是要求能方便的将”消息”进行”摘要”,但在”摘要”中无法得到比”摘要”本身更多的关于”消息”的信息。
基本概念
Solidity中关于数据类型的定义如下:
Solidity是一种静态类型语言,开发唯:MrsFu123 这意味着每个变量都需要在编译时指定变量的类型;
Solidity中新声明的变量总是有一个默认值,具体的默认值跟类型有关,例如bool类型的默认值为false。
数据类型
值类型
Solidity提供的基本数据类型。这些类型的变量总是通过值传递的,变量在函数参数或赋值语句中使用时都会被复制。有以下几类值类型的数据类型:
布尔类型
bool:可接受true和false两个值,默认为false。
整型
int和uint:分别表示有符号和无符号的整数,默认为0。支持关键字int8到int256,以及uint8到uint256,从8位到256位,以8位为步长递增,int和uint分别是int256和uint256的别名。
地址类型
address:包含一个20字节的值(代表一个以太坊地址的大小)。一个地址可以用来获取余额,也可以通过转账的方式来转移余额。
字节类型
bytes1,bytes2,…,bytes32:字节用于存储固定大小的字符集,长度范围是1~32。字节的一个优点是它使用更少的Gas,所以当我们知道数据的长度时,最好使用它。
字符串类型
string:字符串用于存储等于或大于一个字节的字符集,字符串的长度是动态的。
枚举类型
enum:创建用户定义的数据类型,用于为一个整型常量分配一个名称,这使得合约具有可读性、可维护性和更不容易出错。枚举的选项可以用从0开始的无符号整数值表示。
语法如下:
enum<enum_name>{element 1,element 2,...,element n}