首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏JAVA同学会

    都知道Base64,Base32你能实现吗?

    Base64也就知道个大概,Base32怎么实现呀?回去一顿恶补,查资料,看Base64源码,最后终于将Base32实现了。 那么如果我们要实现Base32呢? 40位,正好5个字节,所以我们要5个字节分为一组,进行Base32的编码。 但是实现Base32也是比较难的,不过有先人给我们留下了Base64,我们参照Base64去实现Base32就容易多了。 Base32编码 首先,我们要根据输入字节的长度,确定返回字节的长度,以上面为例,输入字节的长度是5,那么Base32转码后的字节长度就是8。那么如果输入字节的长度是1,返回结果的字节长度是多少呢?

    2.3K30发布于 2021-01-26
  • 来自专栏JAVA同学会

    都知道Base64,Base32你能实现吗?

    Base64也就知道个大概,Base32怎么实现呀?回去一顿恶补,查资料,看Base64源码,最后终于将Base32实现了。 那么如果我们要实现Base32呢? 40位,正好5个字节,所以我们要5个字节分为一组,进行Base32的编码。如下图: ? 对比前面的Base64,Base32就是按照5位去截取,然后去编码表中找到对应的字符。 但是实现Base32也是比较难的,不过有先人给我们留下了Base64,我们参照Base64去实现Base32就容易多了。 Base32编码 首先,我们要根据输入字节的长度,确定返回字节的长度,以上面为例,输入字节的长度是5,那么Base32转码后的字节长度就是8。那么如果输入字节的长度是1,返回结果的字节长度是多少呢?

    78120发布于 2021-01-30
  • 来自专栏林冠宏的技术文章

    base16,base32,base64 编码方式的通俗讲解

    base16,base32,base64 都是编码方式,对应有各自的一套编码算法。 但是有人经常称它们是加密,例如 base64 加密。其实这种说法不算全对。 因为默认的 base16,base32,base64 的各种信息都是公开的,公开的包含有: 算法的运算方式 编码表格,这个是主要 在 base16,base32,base64 中,一旦掌握了上面两类信息 名称 编码后,数据量变化 base 16 由一个8位表示一个字符 变成 4位表示一个字符,数据量变 2 倍 base 32 变为 8/5 倍 base 64 变为 8/6=4/3 倍 补全的限制,拿base32 最终,得出在 base32 的编码中,待编码数据至少要 >= 40 位,其最终的编码结果才能不出现 = 号。例如要被编码的字符是3,很明显,它的结果是:D=======,后面的 = 都是补全的。

    4.4K40发布于 2019-07-19
  • BUUCTF 一眼就解密 1

    flag:ZmxhZ3tUSEVfRkxBR19PRl9USElTX1NUUklOR30= 观察发现,密文字符串末尾有“=”,猜测为Base32/64加密。 又因为密文中含有小写字母,排除Base32,使用Base64在线解密工具解密,获得flag。 flag{THE_FLAG_OF_THIS_STRING} 简述: base32的编码表是由(A-Z、2-7)32个可见字符构成,“=”符号用作后缀填充。

    19711编辑于 2025-08-18
  • 来自专栏人人都是架构师

    Go每日一库之169:dongle(编解码、加解密)

    dongle.Decode.FromBytes([]byte("68656c6c6f20776f726c64")).ByHex().ToBytes() // []byte("hello world") Base32 ====== // 对字符串进行 base32 解码,输出字符串 dongle.Decode.FromString("NBSWY3DPEB3W64TMMQ======").ByBase32().ToString () // hello world // 对字节切片进行 base32 编码,输出字节切片 dongle.Encode.FromBytes([]byte("hello world")).ByBase32 ().ToBytes() // []byte("NBSWY3DPEB3W64TMMQ======") // 对字节切片进行 base32 解码,输出字节切片 dongle.Decode.FromBytes /LICENSE").ByMd4().ToHexString() // 1240c5c0fb26b585999357915c56b511 // 对文件进行 md4 加密,输出经过 base32 编码的字符串

    71360编辑于 2023-09-30
  • BUUCTF 我吃三明治 1

    解题思路: 1、使用010 Editor打开.jpg文件,在.jpg文件尾的位置发现了第二张图片,以及夹在两张jpg图片之间的一串Base32编码的字符。 Base32编码解码 "flag"经过Base32编码后是”MZWGCZY=”。 flag: flag{6f1797d4080b29b64da5897780463e30}

    18221编辑于 2025-08-18
  • 来自专栏Java与Android技术栈

    Scrypt 不止是加密算法,也是莱特币的挖矿算法

    = new int[16]; for (int i = 0; i < 16; i++) { base32[i] = (b1[i * 4 + 0] & 0xff) << 0; base32[i] |= (b1[i * 4 + 1] & 0xff) << 8; base32[i] |= (b1[i * 4 + 2] [i] = x1[i] + base32[i]; } for (int i = 0; i < 16; i++) { b1[i * 4 + 0] = (byte) (base32[i] >> 0 & 0xff); b1[i * 4 + 1] = (byte) (base32[i] >> 8 & 0xff); b1[i * 4 + 2] = (byte) (base32[i] >> 16 & 0xff); b1[i * 4 + 3] = (byte) (base32[i] >> 24

    1.2K40发布于 2018-08-24
  • 来自专栏FreeBuf

    如何使用Pulsar实现数据过滤和安全通信

    Base32 Base32编码/解码器: --handlers base32 Base64 Base64编码/解码器: --handlers base64 Cipher CTR密码工具,支持CTR模式下的 --handlers cipher:<key|[aes|des|tdes#key]> 解码 我们可以使用--decode选项来使用所有数据处理器的解码模式: --handlers base64,base32

    2K20编辑于 2023-04-26
  • 来自专栏仙士可博客

    空间索引-geohash编码解码类

    21  * Time: 上午11:27  */ class Geohash {     const  LATITUDE = 1;     const LONGITUDE = 2;     const BASE32 foreach ($str_arr as $va) {             $decimal    = bindec($va);             $encode_str .= self::BASE32         //根据一位字符串进行切割         $str_arr    = str_split($str, 1);         $decode_str = '';         $base32      = array_flip(self::BASE32);         foreach ($str_arr as $va) {             $decode_str .= str_pad (decbin($base32[$va]),5,'0',STR_PAD_LEFT);         }         return (string)$decode_str;     }     

    1.2K10发布于 2019-12-19
  • 来自专栏小孟开发笔记

    geohash实现附近的工作室,php函数实现-tp5

    precision //精密度, 默认是12 * @return string */ function encode_geohash($latitude, $longitude, $deep) { $BASE32 $is_even; if ($bit < 4) $bit++; else { $i++; $geohash .= $BASE32[$ch]; $bit = 0; $ch = 0; } } return param $geohash * @return array */ function decode_geohash($geohash) { $geohash = strtolower($geohash); $BASE32 180.0); $hashlen = strlen($geohash); $is_even = 1; for($i = 0; $i < $hashlen; $i++ ) { $of = strpos($BASE32

    83230编辑于 2023-02-20
  • 来自专栏deed博客

    [转52pojie.cn]Navicat Premium v12.0.23.0 破解教程x86,x64通用

    ①序列号是一个16字节长度的字符串,是经过Base32编码的,其实际存储长度为80位(8字节),输入密钥后程序也会用Base32解码,以二进制形式存储比对。 简单讲一下Base32 编码,就是把二进制形式数据按每5位来分组,然后把每一组5位的二进制数据转为十进制,去按十进制顺序搜索Base32编码表中对应的32个可见字符,重新保存显示为编码表中的可见字符。 正常的Base32 编码表顺序是: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 不懂base32就自己Google一下 Navicat 的密钥是按照正常的Base32编码表,已经证实 char EncodeTable[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567 这样我们得到了加密后的序列号密钥数据:68 2A A1 DF E0 00 51 EA F4 B3 ③把密钥原始数据转化为二进制,按每5位一组,进行Base32编码 二进制 01101000

    4.8K50发布于 2018-06-04
  • 来自专栏全栈程序员必看

    Geohash算法原理及实现

    11100 11101 00100 01111 00000 01101 01011 00001 第3步,按照Base32进行编码 Base32编码表的其中一种如下,是用0-9、b-z(去掉a, i, l 具体操作是先将上一步得到的合并后二进制转换为10进制数据,然后对应生成Base32码。需要注意的是,将5个二进制位转换成一个base32码。 1':'0'); } String code = base32(Long.parseLong(buffer.toString(), 2)); //Log.i("okunu", " ceiling = mid; } } return buffer; } //将经纬度合并后的二进制进行指定的32位编码 private String base32 geo = geohash.decode(s); // System.out.println(geo[0]+" "+geo[1]); } } 参考地址:geohash 经纬度地址编码 Base32

    1.1K20编辑于 2022-07-19
  • 来自专栏高性能分布式系统设计

    Base58编码简介

    在URL传输领域,还有类似的Base32编码。这个编码去掉了一些特殊字符,只留下了大写字母和数字。 编码效率又高于Base32。 因此很适合用于抗自动监视的传输系统的底层编码机制。虽然基于概率模型的系统很容易识别出Base58,但是考虑到,基于概率模型的系统的巨大的计算和存储开销。

    1.3K50发布于 2018-04-13
  • BUUCTF [MRCTF2020]pyFlag 1

    Base32特征:大写字母(A-Z)和数字(2-7),不满5的倍数,用‘=’补齐。 GU2DKNRUIE2DINJWGQ2TKQJTG42TONJUGQZDGMJVHAZTANBWG44TKQJVGYZTQMZQGU4DGMZUGE3UCNRTGZBDKQJWIM2TSMZTGUZDMNRVIE2DONJWGZATIRBUG42TENSDGYZTMRJTGAZUI=== 典型的Base32 密文特征,进行Base32解密,得到 Base32编码解码 54564A4456455A3757544231583046795A5638305833417A636B5A6C593352665A47566A4D47526C636E303D

    39910编辑于 2025-08-18
  • BUUCTF [QCTF2018]X-man-A face 1

    QR_Research好像坏了,用手机夸克扫出来的,跟上一题一样) KFBVIRT3KBZGK5DUPFPVG2LTORSXEX2XNBXV6QTVPFZV6TLFL5GG6YTTORSXE7I= 观察密文特征,确定为Base32 Base32编码解码 有故事的出题人 flag: flag{Pretty_Sister_Who_Buys_Me_Lobster}

    23400编辑于 2025-08-18
  • 来自专栏爱国小白帽的原创专栏

    30余种加密编码类型的密文特征分析(建议收藏)

    Base32使用了ASCII编码中可打印的32个字符(大写字母AZ和数字27)对任意字节数据进行编码.Base32将串起来的二进制数据按照5个二进制位分为一组,由于传输数据的单位是字节(即8个二进制位 由于数据的二进制传输是按照8比特一组进行(即一个字节),因此Base32按5比特切分的二进制数据必须是40比特的倍数(5和8的最小公倍数)。 Base32也比Base16有优势: Base32比Base16占用的空间更小。 (1000比特数据Base32需要200个字符,而Base16则为250个字符) Base32的缺点: Base32比Base64多占用大约20%的空间。 因为Base32使用8个ASCII字符去编码原数据中的5个字节数据,而Base64是使用4个ASCII字符去编码原数据中的3个字节数据。

    21.9K84发布于 2020-11-19
  • 来自专栏编舟记

    Base-x 编码的奥秘

    Base58 的特点 Base58 的扩展 Base58Check 摘要 Base Encoding 是一组二进制转文本的编码模式(Encoding Scheme),常见的有 Base64、Base58、Base32 Base32 那么 Base 32 这种编码呢?同理,它可以表达的二进制范围是 00000 - 11111 也即 2 的 5 次方,即 32 个数。 也就是说,我们需要将每 5 个字节转化成 8 个Base32 中的字节。 由此,我们可以总结出一些规律。 而 Base32 这种编码方式,因为 8 和 5 的最小公倍数是 40,所以 5 bytes = 4 chars,存在对齐不了情况,那么非 5 字节倍数的字节序列就需要额外补齐,同理, Base58 和 output_string.reverse(); 小结 Base64 用于编码邮件内容、网页图片,意在减少传输过程中可能出现的错误;Base58 是比特币地址使用的编码方法,旨在提高地址的辨识度;Base32

    1.4K40发布于 2020-07-10
  • 来自专栏红队蓝军

    内网仿真渗透【GoldTiger】全网首发

    parser.add_argument("-f", "--exfil-format", help="Format in which to exfil the command output; default: 'base32 '", choices=["hex", "base32"], default="base32") args = parser.parse_args() if "EXFIL" not in else: exfilDestination = args.exfil.replace("EXFIL", f"$({commandToExecute} | base32

    11810编辑于 2026-01-27
  • 来自专栏python前行者

    [990]Geohash算法原理及实现

    11100 11101 00100 01111 00000 01101 01011 00001 第3步,按照Base32进行编码 Base32编码表(其中一种): ? Base32编码表的其中一种如下,是用0-9、b-z(去掉a, i, l, o)这32个字母进行编码。具体操作是先将上一步得到的合并后二进制转换为10进制数据,然后对应生成Base32码。 需要注意的是,将5个二进制位转换成一个base32码。 1':'0'); } String code = base32(Long.parseLong(buffer.toString(), 2)); //Log.i("okunu", " ceiling = mid; } } return buffer; } //将经纬度合并后的二进制进行指定的32位编码 private String base32

    2.6K20发布于 2021-05-27
  • BUUCTF [SUCTF 2019]Game 1

    密文: 下载附件,得到一张图片和一个网站源代码 解题思路: 1、在网站源代码index.html中,发现经过Base32加密后的密文:ON2WG5DGPNUECSDBNBQV6RTBNMZV6RRRMFTX2 === Base32编码解码 使用在线网站进行解密,得到假的flag:suctf{hAHaha_Fak3_F1ag} 2、转过方向,看看那张图片。

    16121编辑于 2025-10-14
领券