You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
1.5 KiB
67 lines
1.5 KiB
package ugsbo.com.buchhaltung;
|
|
|
|
import java.security.MessageDigest;
|
|
|
|
public class Block {
|
|
|
|
|
|
int data;
|
|
int kontostand;
|
|
Block vorher;
|
|
|
|
String ownHash;
|
|
String previousHash;
|
|
|
|
|
|
//erste Block
|
|
public Block(int data) {
|
|
this.data = data;
|
|
ownHash = createNewHash(Integer.toString(data));
|
|
|
|
kontostand = this.data;
|
|
|
|
this.vorher = null;
|
|
this.previousHash = null;
|
|
}
|
|
|
|
//Alle anderen Blöcke
|
|
public Block(int data, Block vorher, String previousHash, int konto) {
|
|
this.data = data;
|
|
ownHash = createNewHash(Integer.toString(data)+previousHash);
|
|
|
|
kontostand = konto + this.data;
|
|
|
|
this.vorher = vorher;
|
|
this.previousHash = previousHash;
|
|
}
|
|
|
|
private String createNewHash(String input) {
|
|
try {
|
|
MessageDigest digest = MessageDigest.getInstance("SHA-256");
|
|
//Applies sha256 to our input,
|
|
byte[] hash = digest.digest(input.getBytes("UTF-8"));
|
|
StringBuffer hexString = new StringBuffer(); // This will contain hash as hexidecimal
|
|
for (int i = 0; i < hash.length; i++) {
|
|
String hex = Integer.toHexString(0xff & hash[i]);
|
|
if(hex.length() == 1) hexString.append('0');
|
|
hexString.append(hex);
|
|
}
|
|
return hexString.toString();
|
|
}
|
|
catch(Exception e) {
|
|
throw new RuntimeException(e);
|
|
}
|
|
}
|
|
|
|
public int getKontostand() {
|
|
return kontostand;
|
|
}
|
|
|
|
public Block getVorher() {
|
|
return vorher;
|
|
}
|
|
|
|
public String getHash() {
|
|
return ownHash;
|
|
}
|
|
}
|