gpt4 book ai didi

encryption - 最后所有加密都使用==

转载 作者:行者123 更新时间:2023-12-03 13:44:03 24 4
gpt4 key购买 nike

我知道大多数base64编码的末尾都有==。是否有其他用途也一样?
例如我发现了这个

nijdRcCHIUnketWzFbcxmvqQKKDnFW05LSE3ttTjoqyBna7JT87AwxeKdoOszXYODMRm6UfA8jK97qgV8A ==

但这不是base64类型。还有什么呢?

最佳答案

您发布的字符串是有效的Base64字符串。

当且仅当它编码的字节数mod 3等于1时,Base64字符串才会以==结尾。

>>> for i in range(10):
... print(i, base64.b64encode(b"\x00"*i))
...
0 b''
1 b'AA=='
2 b'AAA='
3 b'AAAA'
4 b'AAAAAA=='
5 b'AAAAAAA='
6 b'AAAAAAAA'
7 b'AAAAAAAAAA=='
8 b'AAAAAAAAAAA='
9 b'AAAAAAAAAAAA'

你看到图案了吗?

碰巧16字节(128位)加密 key 通常在Base64中进行编码,并且由于16 mod 3 = 1,它们的编码将以 ==结尾。但是,解码后的字符串长61个字节(488位)。它太大了,不能成为大多数加密 key ,太小而不能成为RSA key 。

这是您的字符串,先解码,然后十六进制转储:
00000000  9e 28 dd 45 c0 87 21 49  e4 7a d5 b3 15 b7 31 9a  |.(.E..!I.z....1.|
00000010 fa 90 28 a0 e7 15 6d 39 2d 21 37 b6 d4 e3 a2 ac |..(...m9-!7.....|
00000020 81 9d ae c9 4f ce c0 c3 17 8a 76 83 ac cd 76 0e |....O.....v...v.|
00000030 0c c4 66 e9 47 c0 f2 32 bd ee a8 15 f0 |..f.G..2.....|
0000003d

我看不到任何东西可以告诉我它到底是什么,而且 file(1)也很烂。它可能足够随机,可以被加密,但是我无法确定。 (如果它是随机的,那并不意味着它已加密!它可能只是一个随机数生成器的输出。)

重要的是要了解 Base64不是加密的,不是加密的,因为它没有 key 。我不需要知道或猜测任何 secret 信息即可颠倒字符串的Base64编码。 (“编码”一词可能会造成混淆,这比较笼统。UTF-8,Base64和DEFLATE都是编码,AES-CBC也是编码,但是在所有编码中,只有AES-CBC是加密的。)

关于encryption - 最后所有加密都使用==,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34211497/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com