首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  PHP

请教:如何用 PHP 产生一个类似 bitcoin 那样的公钥和私钥地址对?并且还要保证跟别人的不重合。

  •  
  •   githere · 138 天前用 iPad 发布 · 1382 次点击
    这是一个创建于 138 天前的主题,其中的信息可能已经有所发展或是发生改变。

    查到 php 文挡里面有 hash 的方法,但是如何产生一个独一无二的公钥和私钥地址对?

    11 回复  |  直到 2018-10-01 23:00:59 +08:00
        1
    imdong   138 天前 via Android
    使用 GUID 之类的生成。
    理论上是不会重复的,是默认可信的。
    然鹅,理论和实际是有区别的😏
        2
    annoy1309   138 天前 via Android
    找一个靠谱的随机数生成器,随机数种子最好是用用户的行为生成的
    生成公钥和私钥对,都用不上 php。纯前端都能完成。
        3
    leoleoasd   138 天前
    100%不重合 只能用某自增变量生成
        4
    Kirscheis   138 天前
    调用标准密码学库,记得用真随机数。

    不用考虑重合问题,对于标准长度的密钥,只要随机源靠谱,重合概率无限接近 0
        5
    PureWhiteWu   138 天前   ♥ 2
    让一个新手退出 vim 即可
        6
    DavidNineRoc   138 天前
    uuid 生成一个可用的字符串,自己再写一个异或对调的函数
        7
    githere   138 天前 via iPad
    @DavidNineRoc 能否列举一个代码案例?
        8
    geelaw   138 天前 via iPhone
    生成密钥的算法不能保证生成的密钥是惟一的。然而使用者无需考虑这个问题,只需要按照算法生成和使用密钥即可获得对应算法的安全性保障。

    GUID 的生成算法可以保证正确使用的情况下若干年内惟一。

    @imdong #1
    @DavidNineRoc #6

    这样做是错误的。GUID 只是不重复,并不非要安全,不可用于生成密钥。
        9
    yangqi   138 天前
    你说的是非对称加密,和 hash 没什么关系.php 直接用 openssl.
    http://us3.php.net/manual/en/book.openssl.php
        10
    githere   138 天前 via iPad
    @Kirscheis 用 python 的话就可以按照你说的方法,请问用 php 如何做呢?
        11
    githere   138 天前 via iPad
    @yangqi 感谢,查找到好像要用 openssl_pkey_new 这个函数
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1107 人在线   最高记录 4346   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 19ms · UTC 00:09 · PVG 08:09 · LAX 16:09 · JFK 19:09
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1