字符串base64编解码的多种语言实现

故事起源于逛v站的求职和招人贴,每次都是一长串字符,很迷惑,不知道是邮箱,还是微信号,还是钉钉,还是QQ。


字符串base64编解码的多种语言实现_第1张图片

感觉像是base64,又感觉不像,因为我之前只知道图片能转成base64,没想到字符串也能转,群里一问,还确实是base64。


字符串base64编解码的多种语言实现_第2张图片

于是有趣的事发生了,同学们纷纷用自己最擅长的语言,把base64 字符串编解码实现了一遍...


字符串base64编解码的多种语言实现_第3张图片

我把小伙伴们用各种方式实现的方法整理下,有linux shell,javascript,node,python,php,java,.net。

1.shell (author: Peng Zhao)

解码:echo "a2FsZUBvdWNodGVhbS5jb20=" | base64 -D
编码:echo "[email protected]" | base64

2.javascript (author: Kai Gao)

var encodedData = window.btoa('[email protected]'); // 编码
var decodedData = window.atob("a2FsZUBvdWNodGVhbS5jb20="); // 解码
console.log(encodedData,decodedData)

3.nodejs (author: Kai Gao)

//base64编码
var  b = new Buffer('[email protected]');
var s = b.toString('base64')
console.log("邮箱编码:"+s)
//base64解码
var b = new Buffer('a2FsZUBvdWNodGVhbS5jb20=',"base64")
var s = b.toString();
console.log("邮箱解码:"+s)

4.python (author: Peng Zhao)

import base64
base64.b64encode("[email protected]")
base64.b64decode("a2FsZUBvdWNodGVhbS5jb20=")

5.php (author: Chuang Shen)


6.java (author: Chuang Shen)

String str = "[email protected]";
        String encodeStr = new String(Base64.encode(str.getBytes()));
        System.out.println(encodeStr);
        String decodeStr = Base64.base64Decode(encodeStr);
        System.out.println(decodeStr);

7..net (author: Peng Li)

static void Main(string[] args)
        {
            Console.WriteLine("输入:");
            var str = Console.ReadLine();
            //加密
            byte[] EncryptionByte = Encoding.UTF8.GetBytes(str);
            var EncryptionStr = Convert.ToBase64String(EncryptionByte);

            Console.WriteLine("加密结果:" + EncryptionStr);

            //解密
            byte[] DecryptionByte = Convert.FromBase64String(EncryptionStr);
            var DecryptionStr = Encoding.UTF8.GetString(DecryptionByte);

            Console.WriteLine("解密结果:" + DecryptionStr);

        }

哈哈哈 我的小伙伴们都太可爱了!
That's it ~

期待和大家交流,共同进步,欢迎大家加入我创建的与前端开发密切相关的技术讨论小组:

  • SegmentFault技术圈:ES新规范语法糖
  • SegmentFault专栏:趁你还年轻,做个优秀的前端工程师
  • 知乎专栏:趁你还年轻,做个优秀的前端工程师
  • Github博客: 趁你还年轻233的个人博客
  • 前端开发QQ群:660634678
  • 微信公众号: 人兽鬼 / excellent_developers


    字符串base64编解码的多种语言实现_第4张图片

努力成为优秀前端工程师!

你可能感兴趣的:(字符串base64编解码的多种语言实现)