区块链(Blockchain)是一种分布式数据库技术,它以去中心化和共识机制为基础,用于记录和验证数据的交易和交互。它被设计为一种安全、透明和可靠的方式来管理数据和信息。
区块链的核心概念是"区块"和"链"。每个区块包含一系列交易的数据,例如数字货币交易、智能合约执行等。这些交易数据经过验证后,被收集到一个区块中。每个区块都包含一个唯一的标识符,称为哈希值(Hash),它根据区块中的数据计算得出。区块中还包含了前一个区块的哈希值,这样就形成了一个按时间顺序连接起来的不可篡改的链条,即区块链。
public class HashUtil{
/**
*计算Hash值,使用FNV1_32_HASH算法
* param str
* return
*/
public static int getHash(String str){
final int p=16777619;
int hash=(int)2166136261L;
for(int i=0;i<str.length();i++){
hash=(hash^str.charAt(i))*p;
}
hash+=hash<<13;
hash^=hash>>7;
hash+=hash<<3;
hash^=hash>>17;
hash+=hash<<5;
if(hash<0){
hash=Math.abs(hash);
}
return hash;
}
}