我遇到了一个与验证加密货币钱包地址相关的问题,特别是USDT。USDT可以作为BTC或ETH地址进行验证,具体取决于网络类型。基本上是这样的:
我还没有找到USDT:TRC20地址的具体验证方法,也不知道如何验证它们。
sgtfey8w1#
匹配Tron地址的正则表达式:T[A-Za-z1-9]{33}
T[A-Za-z1-9]{33}
eoigrqb62#
最好不要自己验证地址,您应该使用类似Tron协议的API,不仅检查地址是否有效,还检查它是否是垃圾邮件您需要查看文档tronprotocol也检查如何使http请求here也称为Shielded TRC-20检查this网站作为参考
nbnkbykc3#
trc20地址特点:编码的主网络地址以T开始,长度为34字节。
<?php function isTrc20($address){ return substr($address,0,1)=="T" and strlen($address)==34; } if(isTrc20("TC74QG8tbtixG5Raa4fEifywgjrFs45fNz")) echo "yes"; else echo "no";
资料来源:https://medium.com/tron-foundation/tron-developer-guide-account-2446633a750
sycxhyv74#
您可以根据tron whitepaper-第4.2节(关于从公钥创建地址)使用嵌入式校验和验证地址。使用SHA 3 -256函数散列公钥(SHA 3采用的协议是KECCAK-256),提取结果的后20字节,字节数组的开头加上41,初始地址长度为21字节,使用SHA 3 -256函数对地址进行两次哈希,取前4字节作为验证码。在初始地址末尾加上验证码,通过base 58编码得到base 58 check格式的地址,编码后的主网地址以T开头,长度为34字节。1.您需要使用base 58解码地址1.最后四个字节是校验和(checkSum 1)1.然后,您需要使用sha 256算法两次对解码地址本身(不带校验和)进行散列,并获取前4个字节1.这些字节是实际校验和(checkSum 2)1.如果checkSum 1和checkSum 2相同,则可将地址视为有效如果你熟悉JS的话,你可以查看我的gist with JS实现
4条答案
按热度按时间sgtfey8w1#
匹配Tron地址的正则表达式:
T[A-Za-z1-9]{33}
eoigrqb62#
最好不要自己验证地址,您应该使用类似Tron协议的API,不仅检查地址是否有效,还检查它是否是垃圾邮件
您需要查看文档
tronprotocol
也检查如何使http请求
here
也称为Shielded TRC-20
检查this网站作为参考
nbnkbykc3#
trc20地址特点:
编码的主网络地址以T开始,长度为34字节。
资料来源:https://medium.com/tron-foundation/tron-developer-guide-account-2446633a750
sycxhyv74#
您可以根据tron whitepaper-第4.2节(关于从公钥创建地址)使用嵌入式校验和验证地址。
使用SHA 3 -256函数散列公钥(SHA 3采用的协议是KECCAK-256),提取结果的后20字节,字节数组的开头加上41,初始地址长度为21字节,使用SHA 3 -256函数对地址进行两次哈希,取前4字节作为验证码。在初始地址末尾加上验证码,通过base 58编码得到base 58 check格式的地址,编码后的主网地址以T开头,长度为34字节。
1.您需要使用base 58解码地址
1.最后四个字节是校验和(checkSum 1)
1.然后,您需要使用sha 256算法两次对解码地址本身(不带校验和)进行散列,并获取前4个字节
1.这些字节是实际校验和(checkSum 2)
1.如果checkSum 1和checkSum 2相同,则可将地址视为有效
如果你熟悉JS的话,你可以查看我的gist with JS实现