package Classes;_x000D_
_x000D_
import java.security.MessageDigest;_x000D_
import java.security.NoSuchAlgorithmException;_x000D_
import java.util.Date;_x000D_
_x000D_
public class Account extends Persoon {_x000D_
_x000D_
    //Attributes_x000D_
    private String wachtwoord;_x000D_
    private Date gbdatum;_x000D_
    private String telnr;_x000D_
_x000D_
    //Constructors_x000D_
    public Account(int i, String vn, String tv, String an, String pc, String hnr, String toev, String em, String ww, String gbd, String tnr) {_x000D_
        super(i, vn, tv, an, pc, hnr, toev, em);_x000D_
        setWachtwoord(ww);_x000D_
        setGbdatum(gbd);_x000D_
        telnr = tnr;_x000D_
    }_x000D_
_x000D_
    //Getters_x000D_
    public String getWachtwoord() {_x000D_
        return wachtwoord;_x000D_
    }_x000D_
_x000D_
    public Date getGbdatum() {_x000D_
        return gbdatum;_x000D_
    }_x000D_
_x000D_
    public String getTelnr() {_x000D_
        return telnr;_x000D_
    }_x000D_
_x000D_
    //Setters_x000D_
    public void setGbdatum(String gbd) {_x000D_
        //Hier komt een methode die een MySQL Date omzet naar een Java Date_x000D_
    }_x000D_
_x000D_
    public void setTelnr(String tnr) {_x000D_
        telnr = tnr;_x000D_
    }_x000D_
_x000D_
    public void setWachtwoord(String ww) {_x000D_
        try {_x000D_
            //MessageDigest met algoritme SHA-512_x000D_
            MessageDigest md = MessageDigest.getInstance("SHA-512");_x000D_
            //Wachtwoord wordt omgezet tot bytes en toegevoegd aan de MessageDigest_x000D_
            md.update(ww.getBytes());_x000D_
            //Hasht het (in bytes omgezette) wachtwoord en stopt die in de variabele bytes_x000D_
            byte[] bytes = md.digest();_x000D_
            //Bytes worden hier omgezet naar hexadecimalen_x000D_
            StringBuilder sb = new StringBuilder();_x000D_
            for (int i = 0; i < bytes.length; i++) {_x000D_
                sb.append(Integer.toString((bytes[i] & 0xff) + 0x100, 16).substring(1));_x000D_
            }_x000D_
            //De hexadecimale hash wordt opgeslagen in het attribuut wachtwoord_x000D_
            wachtwoord = sb.toString();_x000D_
        } catch (NoSuchAlgorithmException e) {_x000D_
            e.printStackTrace();_x000D_
        }_x000D_
    }_x000D_
_x000D_
    //Methods_x000D_
}_x000D_

//De hexadecimale hash wordt opgeslagen in het attribuut wachtwoord_x000D_
package Classes;_x000D_
_x000D_
import java.security.MessageDigest;_x000D_
import java.security.NoSuchAlgorithmException;_x000D_
import java.util.Date;_x000D_
_x000D_
public class Account extends Persoon {_x000D_
_x000D_
    //Attributes_x000D_
    private String wachtwoord;_x000D_
    private Date gbdatum;_x000D_
    private String telnr;_x000D_
_x000D_
    //Constructors_x000D_
    public Account(int i, String vn, String tv, String an, String pc, String hnr, String toev, String em, String ww, String gbd, String tnr) {_x000D_
        super(i, vn, tv, an, pc, hnr, toev, em);_x000D_
        setWachtwoord(ww);_x000D_
        setGbdatum(gbd);_x000D_
        telnr = tnr;_x000D_
    }_x000D_
_x000D_
    //Getters_x000D_
    public String getWachtwoord() {_x000D_
        return wachtwoord;_x000D_
    }_x000D_
_x000D_
    public Date getGbdatum() {_x000D_
        return gbdatum;_x000D_
    }_x000D_
_x000D_
    public String getTelnr() {_x000D_
        return telnr;_x000D_
    }_x000D_
_x000D_
    //Setters_x000D_
    public void setGbdatum(String gbd) {_x000D_
        //Hier komt een methode die een MySQL Date omzet naar een Java Date_x000D_
    }_x000D_
_x000D_
    public void setTelnr(String tnr) {_x000D_
        telnr = tnr;_x000D_
    }_x000D_
_x000D_
    public void setWachtwoord(String ww) {_x000D_
        try {_x000D_
            //MessageDigest met algoritme SHA-512_x000D_
            MessageDigest md = MessageDigest.getInstance("SHA-512");_x000D_
            //Wachtwoord wordt omgezet tot bytes en toegevoegd aan de MessageDigest_x000D_
            md.update(ww.getBytes());_x000D_
            //Hasht het (in bytes omgezette) wachtwoord en stopt die in de variabele bytes_x000D_
            byte[] bytes = md.digest();_x000D_
            //Bytes worden hier omgezet naar hexadecimalen_x000D_
            StringBuilder sb = new StringBuilder();_x000D_
            for (int i = 0; i < bytes.length; i++) {_x000D_
                sb.append(Integer.toString((bytes[i] & 0xff) + 0x100, 16).substring(1));_x000D_
            }_x000D_
            //De hexadecimale<SUF>
            wachtwoord = sb.toString();_x000D_
        } catch (NoSuchAlgorithmException e) {_x000D_
            e.printStackTrace();_x000D_
        }_x000D_
    }_x000D_
_x000D_
    //Methods_x000D_
}_x000D_
