区块链开发之验证ETH地址的有效性
引言
之前介绍了eth私钥公钥地址的生成,接下来介绍一下eth地址有效性的校验,要做地址有效性的校验,首先要知道他的地址规则:
eth的地址,就是把公钥用sha256hash之后,取其后160位生成的16进制字符串(40个字符)再加上前缀“0x”(总共42位)
校验流程
第一步,先判断地址非空和是否0x开头
第二步,把16进制字符串转成10进制数,看是否能否转换成功
第三部,判断是否长度是40位(去掉0x)
代码实现
public static boolean isETHValidAddress(String input) {if (StringUtils.isNull(input) || !input.startsWith("0x"))return false;return WalletUtils.isValidAddress(input);}
isValidAddress方法
public static boolean isValidAddress(String input) {String cleanInput = Numeric.cleanHexPrefix(input);try {Numeric.toBigIntNoPrefix(cleanInput);} catch (NumberFormatException e) {return false;}return cleanInput.length() == ADDRESS_LENGTH_IN_HEX;}
区块链开发之验证ETH地址的有效性相关推荐
- 区块链开发之验证BTC地址的有效性
引言 之前介绍了btc私钥公钥地址的生成,接下来介绍一下btc地址有效性的校验,要做地址有效性的校验,首先要知道他的地址生成规则: 第一步,随机选取一个32字节的数.大小介于1 ~ 0xFFFF FF ...
- 【区块链基础】5——ETH协议
GHOST协议 以太坊系统将出块时间降到了15秒左右,相比于比特币系统大幅度提升了出块的速度,但由于P2P网络延迟,会导致出现大量的临时性分叉,间接造成算力的分散,若沿用比特币系统中最长合法链原则,将 ...
- 区块链开发教程 # 2 以太坊公链
科普向介绍请参考 tutorial.技术开发教程请参考本文.本系列文章更偏向技术入门.参考网上资料根据个人理解整理而成.本文主要参考廖雪峰博客. 前一篇文章地址:区块链开发教程 # 1 比特币公链 本 ...
- 区块链开发初学者编程入门指南
我有很多问题需要了解区块链Blockchain的工作原理.重要的是"我如何在其上构建应用程序dapp?".花了几个星期的时间挖掘,阅读和试验才最终了解.我找不到简短而全面的指南.现 ...
- 区块链开发(二)部署和运行第一个以太坊智能合约
区块链开发(二)部署并运行第一个以太坊智能合约 李赫2016年8月22日 本文首发8BTC 网络上不少部署智能合约的文章,但是都有一个共同的特点,就是采用命令行的方式来部署,先是建立SOLC的编译环境 ...
- 区块链开发之搭建以太坊私有链
(一)区块链开发之搭建以太坊私有链 本文链接:https://blog.csdn.net/rwdxll/article/details/82929417 1.安装ethereum/Go client( ...
- 5分钟学会区块链 - 开发一条区块链 Develop BlockChain with Tendermint
本文攻略:解惑区块链开发,学习 Tendermint,给自己造一条区块链 建议玩家等级:技术小白,学生党,初级码农 阅读此文先解锁技能: 一点点命令行基础 一点点 GO 基础:三天包学会 一点点区块链 ...
- 收藏贴 :2019年必备43种区块链开发工具
2019独角兽企业重金招聘Python工程师标准>>> 本文列出2019年最新整理的用于区块链开发的43种流行的开发库.开发工具与开发框架. 原文:43个区块链开发工具 - 汇智网 ...
- 003《区块链开发指南》一一1.2 区块和区块链 转
摘要: 本节书摘来自华章计算机<区块链开发指南>一书中的第1章,第1.2节,作者:申屠青春 主编 宋 波 张 鹏 汪晓明 季宙栋 左川民 编著更多章节内容可以访问云 ...
- 区块链开发(五)区块链ICO:互联网进化的驱动力
区块链开发(五)区块链ICO:互联网进化的驱动力 李赫 2016年10月8日 由于区块链不可篡改的特性,在众多区块链组织和公司的共同努力下,互联网将逐步从中心化的信任进化到由算法.数据为核心的去中心化 ...
最新文章
- Python初学者必学的20个重要技巧
- 侯捷:搞Windows程序设计我们需要啥
- Hadoop_27_MapReduce_运营商原始日志增强(自定义OutputFormat)
- 操作系统识别工具 xprobe2 p0f 简介
- 微信小程序开发(1)
- web app开发技巧总结
- 这就是爱?英特尔处理器将整合AMD HBM2 GPU
- mysql check exist_mysql – 使用多个EXIST进行查询
- Mysql的事务事务的特征事务的隔离级别
- 【sock_stream和sock_dgram】、 【AF_INET和AF_UNIX】
- X86Windows 相关链接....持续更新中....
- php.ini 没有pdo,检查了启用的php.ini文件“ extension = php_pdo_mysql.dll”,但仍然出错...
- android monkey测试步骤,android Monkey 测试技巧
- Snipaste安装教程及软件(截图工具)
- 【开集识别论文解读】C2AE: Class Conditioned Auto-Encoder for Open-set Recognition——CVPR2019
- Super Point 笔记(二)
- 静态函数和非静态函数的区别(静态方法和非静态方法)
- Delphi CxGrid 用法详解
- 《Head First HTML5 javascript》第7章 表单
- Photoshop文字之——制作晶莹剔透胶体特效