타올라라 게임혼! www.gamehon.com

비트코인은 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' 카테고리의 다른 글

지갑 생성 구현  (0) 2018.03.20
DAPP 개발로 선회  (0) 2018.01.10

Comment +0