zoukankan      html  css  js  c++  java
  • [Golang] base64加密与解密

      首先解释以下什么是base64(来自百度百科):

      Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,大家可以查看RFC2045~RFC2049,上面有MIME的详细规范。Base64编码可用于在HTTP环境下传递较长的标识信息。例如,在Java Persistence系统Hibernate中,就采用了Base64来将一个较长的唯一标识符(一般为128-bit的UUID)编码为一个字符串,用作HTTP表单和HTTP GET URL中的参数。在其他应用程序中,也常常需要把二进制数据编码为适合放在URL(包括隐藏表单域)中的形式。此时,采用Base64编码具有不可读性,即所编码的数据不会被人用肉眼所直接看到。

      在golang里有base64库可以实现相关操作,我尝试实现了加密解密的功能。

      同时我认为他们也可以用于聊天信息的传输。

    func Decode(raw []byte) []byte {
    	var buf bytes.Buffer
    	decoded := make([]byte, 215)
    	buf.Write(raw)
    	decoder := base64.NewDecoder(base64.StdEncoding, &buf)
    	decoder.Read(decoded)
    	return decoded
    }
    
    func Encode(raw []byte) []byte {
    	var encoded bytes.Buffer
    	encoder := base64.NewEncoder(base64.StdEncoding, &encoded)
    	encoder.Write(raw)
    	encoder.Close()
    	return encoded.Bytes()
    }
  • 相关阅读:
    Java设计模式之责任链模式
    多线程几个常用方法的实例
    Activiti工作流
    Java线程常用方法汇总
    Java线程的几个概念
    多线程——实现Callable接口
    java对象在JVM堆中的数据结构
    对计算机世界的认知
    wait、notify为什么要放在同步代码块中
    java synchronized关键字的底层实现
  • 原文地址:https://www.cnblogs.com/kirai/p/5745258.html
Copyright © 2011-2022 走看看