如果我遵循如何在ethereumj中创建帐户中提到的步骤。
它每次使用不同的私钥/地址/公钥创建新帐户。每次我都想为相同的密码创建不同的地址/公钥。
发布于 2016-06-20 14:11:17
它每次都会创建新的账户,
ECKey key = new ECKey(); // it will take new random entity
//every time and it is the right way to create new accounts, in java
我认为您把私钥与password.There混淆了,这在Ethereumj实现中并不叫密码。
私钥必须像possible.And一样是随机的,因为人类不能很好/聪明地创建一个随机数来帮助生成一个公钥,并最终从它生成一个地址(这也需要是唯一的)。ECKey构造函数在内部使用SecureRandom()生成器创建一个随机文本,该文本将生成一个足够惟一的公钥(考虑到私钥的随机性,地址在数学上是有保证的)。
如果您来自geth背景,使用web3.个人对象生成帐户的方式,那么我看到了您混淆密码和私钥的意义。但是请注意,您生成的帐户与您提供的密码无关。密码只用于加密密钥库文件,其中包含私钥和其他information.And私钥--您的私钥仍然是随机的,您甚至不知道用于它的种子。
但是对于聪明人来说,您可以生成一个独特的文本,比如TimeStamp+myuniquepass+randomnumber,这可以使用以下way.But,如果我是您,我仍然会使用ECKey key =新的ECKey()创建/生成帐户的方式。
> ECKey key =
> ECKey.fromPrivate(HashUtil.sha3(TimeStamp+myuniquepass+randomnumber .getBytes())); // not working code , but you get the point.
>
>
> byte[] addr = key.getAddress();
> byte[] priv = key.getPrivKeyBytes();
> byte[] pb= key.getPubKey();
>
> String addrBase16 = Hex.toHexString(addr);
> String privBase16 = Hex.toHexString(priv);
https://ethereum.stackexchange.com/questions/6322
复制相似问题