Subtrees hinzugefügt
This commit is contained in:
parent
e913ca6350
commit
7cf55ce953
53 changed files with 3807 additions and 0 deletions
183
Quellcodes/iud_key_rsachat/Nachricht.java
Normal file
183
Quellcodes/iud_key_rsachat/Nachricht.java
Normal file
|
|
@ -0,0 +1,183 @@
|
|||
/**
|
||||
*
|
||||
* description
|
||||
*
|
||||
* @version 1.1 from 30.01.2020
|
||||
* Änderungen: Hash-Funktion verbessert, damit ähnliche Texte nicht so ähnliche Hashes bekommen
|
||||
* @author
|
||||
*/
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.security.MessageDigest;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
|
||||
public class Nachricht {
|
||||
|
||||
// Anfang Attribute
|
||||
private byte[] inhalt;
|
||||
private String absender;
|
||||
private String empfaenger;
|
||||
private ArrayList<Key> keys;
|
||||
private ArrayList<Key> hashKeys;
|
||||
private byte[] hashCode;
|
||||
private long time;
|
||||
private boolean stopped;
|
||||
private boolean sended;
|
||||
// Ende Attribute
|
||||
|
||||
public Nachricht(String absender, String empfaenger, String inhalt) {
|
||||
setInhalt(inhalt);
|
||||
this.absender = absender;
|
||||
this.empfaenger = empfaenger;
|
||||
this.keys = new ArrayList<Key>();
|
||||
this.hashKeys = new ArrayList<Key>();
|
||||
this.hashCode = ("").getBytes() ;
|
||||
this.time = System.currentTimeMillis();
|
||||
this.stopped = false;
|
||||
this.sended = false;
|
||||
}
|
||||
|
||||
public Nachricht(String absender, String empfaenger, byte[] inhalt, byte[] hashCode) {
|
||||
this.inhalt = inhalt;
|
||||
this.absender = absender;
|
||||
this.empfaenger = empfaenger;
|
||||
this.keys = new ArrayList<Key>();
|
||||
this.hashKeys = new ArrayList<Key>();
|
||||
this.hashCode = hashCode;
|
||||
this.time = System.currentTimeMillis();
|
||||
this.stopped = false;
|
||||
this.sended = false;
|
||||
|
||||
}
|
||||
|
||||
public Nachricht(String absender, String empfaenger, String inhalt, ArrayList<Key> keys, ArrayList<Key> hashKeys) {
|
||||
setInhalt(inhalt);
|
||||
this.absender = absender;
|
||||
this.empfaenger = empfaenger;
|
||||
this.keys = (ArrayList<Key>)keys.clone();
|
||||
this.hashKeys = (ArrayList<Key>) hashKeys.clone();
|
||||
this.hashCode = ("").getBytes() ;
|
||||
this.time = System.currentTimeMillis();
|
||||
this.stopped = false;
|
||||
this.sended = false;
|
||||
|
||||
}
|
||||
|
||||
public Nachricht(String absender, String empfaenger, byte[] inhalt, byte[] hashCode, ArrayList<Key> keys, ArrayList<Key> hashKeys) {
|
||||
this.inhalt = inhalt;
|
||||
this.absender = absender;
|
||||
this.empfaenger = empfaenger;
|
||||
this.keys = (ArrayList<Key>)keys.clone();
|
||||
this.hashKeys = (ArrayList<Key>) hashKeys.clone();
|
||||
this.hashCode = hashCode;
|
||||
this.time = System.currentTimeMillis();
|
||||
this.stopped = false;
|
||||
this.sended = false;
|
||||
}
|
||||
|
||||
// Anfang Methoden
|
||||
public String getInhaltString() {
|
||||
return new String(inhalt);
|
||||
}
|
||||
|
||||
public byte[] getInhalt() {
|
||||
return inhalt;
|
||||
}
|
||||
|
||||
|
||||
public void setInhalt(String inhalt) {
|
||||
this.inhalt = inhalt.getBytes();
|
||||
}
|
||||
|
||||
public void setInhalt(byte[] inhalt) {
|
||||
this.inhalt = inhalt;
|
||||
}
|
||||
|
||||
public String getAbsender() {
|
||||
return absender;
|
||||
}
|
||||
|
||||
public void setAbsender(String absender) {
|
||||
this.absender = absender;
|
||||
}
|
||||
|
||||
public String getEmpfaenger() {
|
||||
return empfaenger;
|
||||
}
|
||||
|
||||
public void setEmpfaenger(String empfaenger) {
|
||||
this.empfaenger = empfaenger;
|
||||
}
|
||||
|
||||
public Nachricht copy() {
|
||||
Nachricht n = new Nachricht(absender, "", inhalt, hashCode, keys, hashKeys);
|
||||
return n;
|
||||
}
|
||||
public void addKey(Key k) {
|
||||
|
||||
keys.add(k);
|
||||
}
|
||||
|
||||
public ArrayList<Key> getKeys() {
|
||||
|
||||
return keys;
|
||||
}
|
||||
|
||||
public void addHashKey(Key k) {
|
||||
|
||||
hashKeys.add(k);
|
||||
}
|
||||
|
||||
public ArrayList<Key> getHashKeys() {
|
||||
|
||||
return hashKeys;
|
||||
}
|
||||
|
||||
public void generateHash() {
|
||||
try{
|
||||
MessageDigest digest = MessageDigest.getInstance("SHA-256");
|
||||
hashCode = Base64.encode(digest.digest(getInhaltString().getBytes(StandardCharsets.UTF_8))).substring(0,10).getBytes();
|
||||
|
||||
} catch(Exception e) {
|
||||
System.out.println(e);
|
||||
hashCode = new byte[0];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public byte[] getHashCode() {
|
||||
return hashCode;
|
||||
}
|
||||
|
||||
public void setHashCode(byte[] hashCode) {
|
||||
this.hashCode = hashCode;
|
||||
}
|
||||
|
||||
public int getRestzeit() {
|
||||
if (sended || stopped) {
|
||||
return 0;
|
||||
} // end of if
|
||||
return 10 - (int) ((System.currentTimeMillis()-this.time)/1000);
|
||||
}
|
||||
|
||||
|
||||
|
||||
public boolean getSended() {
|
||||
return sended;
|
||||
}
|
||||
|
||||
public void setSended(boolean s) {
|
||||
sended = s;
|
||||
}
|
||||
|
||||
|
||||
public boolean getStopped() {
|
||||
return stopped;
|
||||
}
|
||||
|
||||
public void setStopped(boolean s) {
|
||||
stopped = s;
|
||||
}
|
||||
// Ende Methoden
|
||||
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue