如何验证Near地址有效性?能否额外添加校验和验证?
NEAR地址有效性验证与自定义校验和实现
首先明确:NEAR官方账户ID系统本身没有内置校验和机制,但你完全可以在已实现的官方规则校验基础上,额外添加自定义校验和验证来提升地址验证的安全性。
具体实现思路
先完成官方规则校验
确保账户ID符合NEAR官方要求:- 长度在2-64字符之间
- 只能包含小写字母、数字、
_和. - 不能以
.开头或结尾,也不能连续出现. - 顶级域名部分(最后一个
.后的内容)至少2个字符
添加自定义校验和逻辑
你可以基于常见哈希或校验算法实现,比如以下示例流程:- 将合法的账户ID以UTF-8编码转换为字节数组
- 使用SHA-256或CRC32计算哈希值,截取前4-8位(或按需调整长度)作为校验和
- 将校验和以约定方式附加到账户ID(比如用
-分隔,如my-account.near-abc123)
校验流程
- 拆分输入的带校验和地址,分离出原账户ID和校验和
- 先验证原账户ID是否符合官方规则
- 重新计算原账户ID的校验和,与分离出的校验和对比,一致则验证通过
注意事项
- 这种自定义校验和属于业务层逻辑,NEAR网络本身不会识别,所以如果对外提供服务,需要明确告知用户你的地址格式规则
- 控制校验和长度,避免最终带校验和的地址超过NEAR账户ID的64字符上限
- 优先选择碰撞概率低的算法,比如SHA-256比CRC32安全性更高,适合对安全性要求高的场景
内容的提问来源于stack exchange,提问作者D.J.
相关产品推荐
相关产品推荐

