用Java解释比特币挖矿原理
工具类
public class CryptoUtil {
private CryptoUtil() {
}
public static String SHA256(String str) {
MessageDigest messageDigest;
String encodeStr = "";
try {
messageDigest = MessageDigest.getInstance("SHA-256");
messageDigest.update(str.getBytes("UTF-8"));
encodeStr = byte2Hex(messageDigest.digest());
} catch (Exception e) {
System.out.println("getSHA256 is error" + e.getMessage());
}
return encodeStr;
}
}
启动类
public class TestMain {
public static void main(String[] args) {
int nounce = 1;
long start = System.currentTimeMillis();
while (true){
String hash = CryptoUtil.SHA256("dff453"+"sfsdjsljfslfjg"+nounce);
if(hash.startsWith("0000000")){
System.out.println(hash);
break;
}
nounce++;
}
long end = System.currentTimeMillis();
System.out.println("计算次数:"+nounce);
System.out.println("计算时间:"+(end-start)/(1000*60));
}
}
