这东西本不值得发一个帖子……主要是看到帖子有人又制作了在线 base64 编码 /解码的网站,也见过有人专门自己写了个 python 脚本来处理的……
其实 chromium 内核的浏览器都自带了这个功能。。使用方式就是在做任意一个页面上打开 DevTools
btoa('hello,world')
// "aGVsbG8sd29ybGQ="
atob('aGVsbG8sd29ybGQ=')
// "hello,world"
楼主是 windows 用户,安装了 git 客户端,里面集成了 md5sum
功能。
echo 123 | md5sum
# ba1f2511fc30423bdbb183fe33f3dd0f
说完了,继续潜水了
1
hellojay 2020-12-08 11:38:37 +08:00 5
我真的是懒得输入这些,不如我点点鼠标
|
2
echowuhao 2020-12-08 11:38:46 +08:00
手机上咋办。
|
3
echowuhao 2020-12-08 11:39:38 +08:00 2
需求不一样,方便程度不一样。
对于用 markdown 的程序员来讲,word 也是不需要的。 |
4
di1012 2020-12-08 11:40:16 +08:00
工具就是为懒人准备的
|
5
52coder 2020-12-08 11:40:47 +08:00
虽然知道楼主说的方法,但我都用 chrome 或者 notepad 插件,哈哈哈
|
6
baobao1270 2020-12-08 11:42:52 +08:00
1 、DevTools 的那个,遇到 UTF8MB4 字符有一些 bug
2 、不是所有 Windows 程序员都会装 MSYS/MINGW64/WSL 的 3 、打开 Shell 很麻烦 |
8
iptables 2020-12-08 11:44:37 +08:00 11
macOS 自带 base64 命令
编码 ``` $ echo "Hello, world" | base64 SGVsbG8sIHdvcmxkCg== ``` 解码 ``` $ echo "SGVsbG8sIHdvcmxkCg==" | base64 -D Hello, world ``` |
9
szq8014 OP @baobao1270 #6 一般安装了 git 都自带了,这个只能限定在使用 git 的用户,如果用了 svn 等等就只能再想其它办法了……
|
10
xiaoliu926 2020-12-08 11:46:32 +08:00
还要写代码? 我打开百度随便搜一下网站,复制粘贴不爽嚒
|
11
echowuhao 2020-12-08 11:47:15 +08:00
@szq8014 你下班后灌水看 v2,有人发了个 base64 的 id,你想加他。你可以回家打开电脑。你也可以打开一个网页,解决问题。需求不就来的么。
我有时候会有些固定的模式的代码,比如一个属性,我要生成多个配置。我可以自己编辑,也可以写个编辑器插件。最后还是发现,我写个 js 函数。弄个网页方便。 当然,我做了很多这方面的工作,生成一个网页太方便。 |
13
echowuhao 2020-12-08 11:48:43 +08:00
弄个网页,根据需求,生成我要的配置。 我也可以写个 script,还是没有网页方便。
|
14
h4wklee 2020-12-08 11:50:11 +08:00 1
怎么讲,如果有个小白问你我用的是 360 浏览器,然后怎么打开 DevTool,然好要不要带括号,这个引号怎么输入的时候,您会负责地教他还是扔个网站给他呢?
|
15
Mirage09 2020-12-08 11:51:49 +08:00 via iPhone
iPhone 上可以用 shortcut,也很简单
|
16
szq8014 OP 怎么找不到 append 功能了,不管是 base64 还是 md5 都完全可以在浏览器端实现,如果不是,那可能有别企图。
不如找一个纯前端的网页工具来使用。 之前也没想到过还有移动端使用的需求…… |
17
xingyue 2020-12-08 12:02:06 +08:00 2
atob 和 btoa 在有些场景下是“有缺陷”的,比如你试试 btoa('汉字');
所以 base64-js 在 npm 上高达两千多万的周下载量。。。。 参见: https://developer.mozilla.org/zh-CN/docs/Web/API/WindowBase64/Base64_encoding_and_decoding#Unicode_%E9%97%AE%E9%A2%98 |
18
aloxaf 2020-12-08 12:03:01 +08:00 11
捉虫:`echo 123` 末尾会有换行符,实际计算的是 123\n 的 md5,应该写成 `echo -n 123 | md5sum` 才对
不少人都踩过这个坑 2333 |
19
3dwelcome 2020-12-08 12:03:59 +08:00 via Android
制作工具还是有必要的,我都自己写过一个 base64 工具页面,无脑点点鼠标,难道不香吗?
|
20
crab 2020-12-08 12:07:01 +08:00
win 下可以 cmd certutil
|
21
aheadlead 2020-12-08 12:12:35 +08:00
像我就觉得点鼠标是个很麻烦的事情。。。还得抬手,还得找鼠标指针在哪
|
22
haonse 2020-12-08 12:14:57 +08:00 1
无意冒犯楼主,前几天我看过那个帖子,人也说了不是为程序员准备的...就是给小白用的。楼主发这个帖子可能会打击后人分享的积极性
|
23
alan0liang 2020-12-08 12:15:05 +08:00 via Android
@echowuhao #2 termux
|
24
Cbdy 2020-12-08 12:17:14 +08:00 via Android
你试试中文
|
25
nnnToTnnn 2020-12-08 12:31:56 +08:00
无意冒犯楼主,btoa,atob 存在缺陷 ,md5 存在缺陷,sha 的算法比较好。
|
27
ptrees 2020-12-08 12:52:38 +08:00
学到了,装逼技巧+1
|
28
gromit1337 2020-12-08 12:59:58 +08:00
学到了
|
29
RRRoger 2020-12-08 13:03:40 +08:00 9
还要写代码?
还要用工具? 我都是口算的 [doge] |
30
kosmosr 2020-12-08 13:16:36 +08:00
用 uTools 不香吗,啥工具都是一键唤出
|
31
hansnow 2020-12-08 13:29:52 +08:00
没装 git bash 的 windows 用户可以试试 certutil -hashfile yourFullPathFileAddress MD5
|
32
rock_cloud 2020-12-08 13:32:40 +08:00 1
啊,说个小细节,echo 123456 | md5sum 和 echo -n 123456 | md5sum 的结果是不一样的,echo -n 可以去除 echo 输出的\n 符,不然出来的 md5 是错的。
|
33
zhangfeiwudi 2020-12-08 13:35:25 +08:00
|
34
orzfly 2020-12-08 13:37:02 +08:00 4
|
35
IGJacklove 2020-12-08 13:47:51 +08:00 via Android
我想起了拿针刻光盘的故事
|
36
fiveelementgid 2020-12-08 13:49:10 +08:00
你们不咋用 WSL 的吗.......手机上面 termux 也挺好用的
─$ echo -n "123" | base64 MTIz |
37
fiveelementgid 2020-12-08 13:49:52 +08:00 1
@rock_cloud 确实细节,当年忘了-n 直接 error 到天亮(
|
38
jimmyismagic 2020-12-08 13:50:44 +08:00
大家都是狠人,不需要那一点
|
39
ETiV 2020-12-08 13:54:39 +08:00 via iPhone
echo -n 也不是万能的,
好像 alpine 的 echo 实现的不一样,-n -e 都能被直接打印出来,后面我都用 printf 了 |
41
Osk 2020-12-08 14:02:33 +08:00 via Android
Windows 可以用 certutil 和 Pwershell: get-filehash -alg md5|sha1|sha256... file
|
42
yaphets666 2020-12-08 14:11:11 +08:00
@orzfly 这个文章好像有点问题? 好像不需要 escape 和 unescape 呀 btoa(encodeURIComponent("汉字")) decodeURIComponent(atob(base64)) 就行了
|
43
SmallTeddy 2020-12-08 14:17:03 +08:00
@iptables 我用 echo 编码可以实现 但是解码会提示我 bash: base: command not found
|
44
szq8014 OP @yaphets666 #42 你这样出来的 base64 其它方法解的话结果不正确;你可以对比其它工具看看
|
45
Lemeng 2020-12-08 14:27:44 +08:00
进来学习学习的
|
46
ThirdFlame 2020-12-08 14:30:52 +08:00
echo 要加上-n ,否则会在字符串后边加上\n
|
47
sherlockwhite 2020-12-08 14:32:08 +08:00
我用的是 Chrome 插件
|
48
newtype0092 2020-12-08 14:32:42 +08:00
@iptables shell 里 echo 有个坑
echo "hello,world" | base64 结果是 aGVsbG8sd29ybGQK,和实际结果 aGVsbG8sd29ybGQ= 不一致 仔细看了下发现原来是 echo 结果默认带换行,改成 printf "hello,world" | base64 正常了 |
49
tadebao 2020-12-08 14:37:55 +08:00
laptop:~$ echo hello,word |base64
aGVsbG8sd29yZAo= aptop:~$ echo aGVsbG8sd29yZAo=|base64 -d hello,word |
50
sasalemma 2020-12-08 15:19:29 +08:00
呃 (⊙﹏⊙)
windows 用户有没有 git,都自带 powershell 的。只要是 8.1 以上的系统。就是 powershell 4.x ?以上。 直接用 get-filehash -algorithm sha1/sha256/md5 都行吧 |
51
wangxiaoaer 2020-12-08 15:36:43 +08:00
@echowuhao #3 说真的,就 MD 那个列表的鸟样,文档如果层级多点,作者不头晕吗? 再加上如果用了无序列表,读者不眼花吗?
|
52
webshe11 2020-12-08 15:42:28 +08:00 1
推荐一个开源的在线小工具集,可以下下来离线使用,或者放到自己服务器上
https://github.com/gchq/CyberChef |
53
nidaye999 2020-12-08 15:43:35 +08:00
浏览器自带的 btoa 和 atob 有缺陷,比如 btoa('你好') , 否则为什么还有 js-base64 。 第三方库存在肯定是有它的道理,而且 base64 还要兼容 URL 编码。
|
54
20200924 2020-12-08 16:43:56 +08:00
学到了
|
56
julyclyde 2020-12-08 16:52:19 +08:00
md5sum 是 git 里带的?我还以为是系统自带的……
|
57
ttys001 2020-12-08 16:52:46 +08:00
Mac 有个叫 Boop 的 App 很好用。
|
58
hatebugs 2020-12-08 17:34:29 +08:00
base64 <<< 'hello'
base64 -d <<<'aGVsbG8K' |
60
qwerthhusn 2020-12-08 17:37:08 +08:00
黑猫白猫
|
61
stille 2020-12-08 17:38:58 +08:00
macOS 上的 popclip 有 base64 插件好方便的..
|
62
yuzo555 2020-12-08 17:42:42 +08:00
我们的 base64.us 不会记录,你可以抓包看看。
除非你主动在高级设置里面切换到 GB2312 编码,否则默认的 UTF-8 编码情况下,纯前端完成,不记录也不走服务端。 |
63
hatebugs 2020-12-08 17:43:01 +08:00
纠正 , base64 <<< 'hello' ,同样带了换行,还是用 echo -n
|
64
szq8014 OP |
65
jmc891205 2020-12-08 17:47:22 +08:00
base64 根本不需要打开什么电脑来生成啊(逃
|
66
soulmt 2020-12-08 17:55:09 +08:00
如果你们用 utools, 你们就会发现常用的工具有多么好用, 在这个工具里面你只要唤起 utools,然后输入 base64(提前装一下 base64 插件) 然后复制图片或者拖入图片就好了....
|
67
phpc 2020-12-08 18:01:41 +08:00
不错,firefox 也可以用
|
68
litiechui 2020-12-08 18:08:39 +08:00
学到了,感谢楼主
|
69
keepeye 2020-12-08 18:11:41 +08:00
我用 utools 更方便
|
71
Kasumi20 2020-12-08 18:51:07 +08:00 1
btoa 只支持二进制字符串,要支持 UTF-8,可以参考:
https://github.com/develon2015/js/blob/main/src/web/encode/base64.ts /** * 将 Blob 对象(File 基于 Blob)转换为 Base64 编码. * @param blob File 或`new Blob([string])`等 Blob 对象 */ export async function Blob2Base64(blob: Blob): Promise<string> { let arrayBuffer = await blob.arrayBuffer(); return ArrayBuffer2Base64(arrayBuffer); } /** * 将 UTF-8 字符串编码为 Base64 字符串 * String => Blob => ArrayBuffer => Uint8Array => BinaryString => btoa() * @param str */ export async function String2Base64(str: string): Promise<string> { return Blob2Base64(new Blob([str])); } export function ArrayBuffer2Base64(buffer: ArrayBuffer): string { var binary = ''; var bytes = new Uint8Array(buffer); var len = bytes.byteLength; // 将原始二进制数据按字节转换, 拼接为二进制字符串 for (var i = 0; i < len; i++) { 、、、 |
72
darknoll 2020-12-08 19:07:16 +08:00
不能支持中文,有啥用
|
73
HangoX 2020-12-08 19:20:29 +08:00 1
心算不就可以了?为什么还需要用电脑
|
74
GoLand 2020-12-08 19:42:24 +08:00
|
75
bjzhou1990 2020-12-08 20:00:53 +08:00
既然来了,给我自己写的 base64 脚本打个广告吧 https://v2ex.com/t/699203
|
77
abersheeran 2020-12-09 00:39:20 +08:00
来都来了,我也给自己的工具打个广告 https://pixiv.app/
|
78
littlecreek 2020-12-09 01:29:20 +08:00
linux/macos 上也有命令行 command: base64. 不过总有很多对计算机一知半解的用户(包括不少开发者都是一知半解), 告诉他们用命令行或者 Chrome Dev Tools 可能会有畏难情绪, 他们也不在乎 /不了解信息泄露. 定位不同而已.
``` y@192 ~/Downloads » echo hello | base64 aGVsbG8K y@192 ~/Downloads » echo aGVsbG8K | base64 -d hello y@192 ~/Downloads » ``` |
79
fanlis 2020-12-09 08:43:11 +08:00
|
80
gabezhao 2020-12-09 08:46:26 +08:00
我动动鼠标的事情为什么要动手输入呢
|
81
binux 2020-12-09 09:17:10 +08:00 via Android 2
所有说 btoa 有缺陷的都是不理解 base64 算法是什么。
我觉得这是一道不错的面试题,可以检查基本功是否扎实。 |
82
raptor 2020-12-09 09:25:33 +08:00
在电脑上咋弄都方便……哦,Windows 啊?告辞!
|
83
Soar360 2020-12-09 10:01:04 +08:00
所以,我用 winform 做了一个小工具。。
|
85
skye 2020-12-09 10:18:13 +08:00
vscode 和 sublime 都有插件
|
86
killerv 2020-12-09 10:31:26 +08:00
楼主这就是典型的程序员思维,不了解普通用户的需求。
|
87
467469274 2020-12-09 10:53:17 +08:00
有点意思
|
88
Woodrow 2020-12-09 11:07:54 +08:00
敏感数据, 比如机场的订阅链接, 担心被网站记录, 可以用这种方式.
|
89
Curtion 2020-12-09 11:26:14 +08:00
atob 和 btoa 是肯定有局限性的,很久之前碰见过这个坑,在一定条件下进行的 base64 并不准确,这个条件被我忘记了...
|
90
aguesuka 2020-12-09 11:51:29 +08:00 via Android
windows 系统貌似自带 md5,还可以算文件
|
91
leekafai 2020-12-09 12:15:19 +08:00
根本不需要下载什么 chrome,win10 自带 edge,linux 那些自带 firefox/opera,macOS 自带 safari
|
92
Kamiyu0087 2020-12-09 12:29:23 +08:00
使用 jshell 输入 Base64.getEncoder().encodeToString("Hello World".getBytes()) 即可 [doge]
|
93
Breadykid 2020-12-09 12:30:45 +08:00
Linux 环境的话
编码 echo $(base64 <<< "你好" ) 解码 echo $(base64 -d <<< "5L2g5aW9Cg==" ) |
94
marsteel 2023-02-07 22:12:39 +08:00
$ export myemail="[email protected]"
$ jq -n 'env.myemail|@base64' "YWJjQGV4YW1wbGUuY29t" $export myemail="YWJjQGV4YW1wbGUuY29t" $jq -n 'env.myemail|@base64d' "[email protected]" |