
这东西本不值得发一个帖子……主要是看到帖子有人又制作了在线 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 我真的是懒得输入这些,不如我点点鼠标 |
2 echowuhao 2020-12-08 11:38:46 +08:00 手机上咋办。 |
3 echowuhao 2020-12-08 11:39:38 +08:00 需求不一样,方便程度不一样。 对于用 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 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 怎么讲,如果有个小白问你我用的是 360 浏览器,然后怎么打开 DevTool,然好要不要带括号,这个引号怎么输入的时候,您会负责地教他还是扔个网站给他呢? |
15 NVDA 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 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 捉虫:`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 无意冒犯楼主,前几天我看过那个帖子,人也说了不是为程序员准备的...就是给小白用的。楼主发这个帖子可能会打击后人分享的积极性 |
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 还要写代码? 还要用工具? 我都是口算的 [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 啊,说个小细节,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 |
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 @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 推荐一个开源的在线小工具集,可以下下来离线使用,或者放到自己服务器上 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 不会记录,你可以抓包看看。 除非你主动在高级设置里面切换到 编码,否则默认的 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 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 心算不就可以了?为什么还需要用电脑 |
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 所有说 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]" |
95 liuhui244671426 251 天前 正好打个广告,https://base64.xin 方便 decode 和 encode ,支持 text 和 image 格式 |