标签: base58

PostgreSQL 中的 Base58 编码器函数

我在Github Gist中找到了Base58编码器的 MySQL 函数 。

DELIMITER $$

CREATE FUNCTION base58_encode (num int) RETURNS varchar(255)
  DETERMINISTIC

BEGIN
  DECLARE alphabet varchar(255);
  DECLARE base_count int DEFAULT 0;
  DECLARE encoded varchar(255);
  DECLARE divisor DECIMAL(10,4);
  DECLARE mode int DEFAULT 0;

  SET alphabet = '123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ';
  SET base_count = CHAR_LENGTH(alphabet);
  SET encoded = "";

  WHILE num  >= base_count DO
    SET divisor = num / base_count;
    SET mode = (num - (base_count* TRUNCATE(divisor,0)));
    SET encoded = CONCAT(SUBSTRING(alphabet FROM mode+1 FOR 1), encoded);
    SET num = …
Run Code Online (Sandbox Code Playgroud)

mysql sql postgresql base58

3
推荐指数
1
解决办法
2864
查看次数

转为 base58 的十六进制字符串

有谁知道有什么软件包支持将 base58 转换为十六进制字符串或从十六进制字符串转换为 base58 编码。下面是一个 python 实现的示例。

https://www.reddit.com/r/Tronix/comments/ja8khn/convert_my_address/

这个十六进制字符串<-“4116cecf977b1ecc53eed37ee48c0ee58bcddbea5e”应该导致:“TC3ockcvHNmt7uJ8f5k3be1QrZtMzE8MxK”

这是用于验证的链接:https://tronscan.org/#/tools/tron-convert-tool

hex r base58

2
推荐指数
1
解决办法
4899
查看次数

如何将整数转换为base58?

我有一个十进制数,我想将其作为 base58 字符串显示在屏幕上。我已经有了:

>>> from base58 import b58encode
>>> b58encode('33')
'4tz'
Run Code Online (Sandbox Code Playgroud)

这看起来是正确的,但是由于数字小于 58,因此生成的 base58 字符串不应该只有一个字符吗?我肯定错过了一些步骤。我认为这是因为我传递的是字符串“33”,而不是数字 33。

当我传入一个直整数时,出现错误:

>>> b58encode(33)
TypeError: a bytes-like object is required (also str), not 'int'
Run Code Online (Sandbox Code Playgroud)

基本上我想用 base58 编码一个数字,以便它使用尽可能少的字符......

python base58

1
推荐指数
1
解决办法
2577
查看次数

标签 统计

base58 ×3

hex ×1

mysql ×1

postgresql ×1

python ×1

r ×1

sql ×1