비트코인은 sha-256기반으로 만들어진 값을 ripemd-160으로 재처리한다고 하기에 구현
public String makeWalletID()
{
String wid = "";
try {
MessageDigest sh = MessageDigest.getInstance("SHA-256");
walletseed = uid+":"+Util.getPostHash();
byte[] b64 = Base64.getEncoder().encode(walletseed.getBytes());
sh.update(b64);
byte[] shByte = sh.digest();
StringBuffer sb = new StringBuffer();
for(int i=0;i<shByte.length;i++)
{
sb.append( Integer.toHexString(shByte[i]&0xff));
}
//System.out.println("sha:"+sb.toString());
byte[] ripByte = Ripemd160.getHash(shByte);
sb = new StringBuffer();
for(int i=0;i<ripByte.length;i++)
{
sb.append( Integer.toHexString(ripByte[i]&0xff));
}
//System.out.println("rip:"+sb.toString());
wid = sb.toString();
} catch (NoSuchAlgorithmException ex) {
Logger.getLogger(InfoData.class.getName()).log(Level.SEVERE, null, ex);
}
return wid;
}
기본적으로 seed를 어떠한 것으로 할지 고민하다가 추후 태깅을 위한 분리자를 추가해 보았다.
seed 자체는 1차적으로 uid를 활용하겠지만 타 코인들과 다른 점으로 내새우기 위한 포스트맨 네트워크에서 활용하기 위한 구분자로서의 역할도 고려해야 할 것으로 보인다.
테스트 코드는 문제 없고, 이번 주 내로 안드로이드로는 하나 내야할텐데 힘내보자 !!
'I.Coin Project' 카테고리의 다른 글
QUIDO 체인 활용, 게임체인 (0) | 2018.05.09 |
---|---|
Coin design. (0) | 2018.05.07 |
Oparts Hunter Map (OHM) (0) | 2018.05.03 |
ART 백서 작성을 해야한다. (0) | 2018.04.25 |
DAPP 개발로 선회 (0) | 2018.01.10 |