GOLANG 加密,解密,GUID 小方法
golang的 MD5加密.BASE64解密 guid 的代码:
/**
* 用于加密,解密,(包含MD5加密和base64加密/解密)以及GUID的生成
* 时间:
* zhifieya
*/ package safe import (
"crypto/md5"
"crypto/rand"
"crypto/sha1"
"encoding/base64"
"encoding/hex"
"io"
"strings"
) const (
//BASE64字符表,不要有重复
base64Table = "<>:;',./?~!@#$CDVWX%^&*ABYZabcghijklmnopqrstuvwxyz01EFGHIJKLMNOPQRSTU2345678(def)_+|{}[]9/"
hashFunctionHeader = "zh.ife.iya"
hashFunctionFooter = "09.O25.O20.78"
) /**
* 对一个字符串进行MD5加密,不可解密
*/
func GetMd5String(s string) string {
h := md5.New()
h.Write([]byte(s)) //使用zhifeiya名字做散列值,设定后不要变
return hex.EncodeToString(h.Sum(nil))
} /*获取 SHA1 字符串*/
func GetSHA1String(s string) string {
t := sha1.New()
t.Write([]byte(s))
return hex.EncodeToString(t.Sum(nil))
} /**
* 获取一个Guid值
*/
func GetGuid() string {
b := make([]byte, )
if _, err := io.ReadFull(rand.Reader, b); err != nil {
return ""
}
return GetMd5String(base64.URLEncoding.EncodeToString(b))
} var coder = base64.NewEncoding(base64Table) /**
* base64加密
*/
func Base64Encode(str string) string {
var src []byte = []byte(hashFunctionHeader + str + hashFunctionFooter)
return string([]byte(coder.EncodeToString(src)))
} /**
* base64解密
*/
func Base64Decode(str string) (string, error) {
var src []byte = []byte(str)
by, err := coder.DecodeString(string(src))
return strings.Replace(strings.Replace(string(by), hashFunctionHeader, "", -), hashFunctionFooter, "", -), err
}
---支飞亚
GOLANG 加密,解密,GUID 小方法的更多相关文章
- DES加密 java与.net可以相互加密解密两种方法
DES加密 java与.net可以相互加密解密两种方法 https://www.cnblogs.com/DrWang/archive/2011/03/30/2000124.html sun.misc. ...
- JavaScript加密解密7种方法总结分析
原文地址:http://wenku.baidu.com/view/9048edee9e31433239689357.html 本文一共介绍了七种javascript加密方法: 在做网页时(其实是网页木 ...
- JavaScript加密解密7种方法
注:本文纯转贴,供学习使用 本文一共介绍了七种javascript加密方法: 在做网页时(其实是网页木马呵呵),最让人烦恼的是自己辛辛苦苦写出来的客户端IE运行的javascript代码常常被别人轻易 ...
- linux 加密解密文件小程序
代码见下面,编译之后就可以用:建议放在bash下,或者添加环境变量. 使用方法:encrypt .两次输入密码.加密密码与解密密码不一致解码后就不是原文件了! #include <stdio.h ...
- php AES cbc模式 pkcs7 128位加密解密(微信小程序)
PHP AES CBC模式PKCS7 128位加密 加密: $key = '1234567812345678'; $iv = '1234567890123456'; $message = '12345 ...
- Des加密解密(公共方法)
1 public class Des 2 { 3 public static string Encrypt(string message, string key) 4 { 5 DES des = ne ...
- 微信小程序aes前后端加密解密交互
aes前后端加密解密交互 小程序端 1. 首先引入aes.js /** * [description] CryptoJS v3.1.2 * [description] zhuangzhudada so ...
- 步步为营-17-FileStream-文件加密/解密
以前使用的File是操作小的文本文件,用的并不常见,FileStream(操作字节),可以操作所有格式的文件,用途较广泛 下面做一个通过文件流给文件加密解密的小软件. using System; us ...
- DES带IV向量加密解密工具
链接:http://pan.baidu.com/s/1kVAV80J 密码:sgys 鉴于网上的DES加密解密都是不带IV向量的 我就自制了一个带IV向量的DES加密解密的小工具 © 2016-20 ...
随机推荐
- mac同时享受教育优惠和免手续费分期
神奇地址:工商银行 http://store.apple.com/cn_icbc_edu招商银行 http://store.apple.com/cn_cmb_edu农业银行 http://sto ...
- Java基础学习总结(43)——Java8 Lambda揭秘
再了解了Java 8 Lambda的一些基本概念和应用后, 我们会有这样的一个问题: Lambda表达式被编译成了什么?. 这是一个有趣的问题,涉及到JDK的具体的实现. 本文将介绍OpenJDK对L ...
- Java基础学习总结(3)——抽象类
一.抽象类介绍 下面通过一下的小程序深入理解抽象类 因此在类Animal里面只需要定义这个enjoy()方法就可以了,使用abstract关键字把enjoy()方法定义成一个抽象方法,定义如下:pub ...
- SpringBoot项目maven 打包时跳过测试
在打包spring boot项目时,如果测试用例特别多,打包时间会增加: 而且测试用例有时忘记了做相应修改,在打包时则会报错而终止打包,就很烦. 所以这时会想在打包时跳过测试,大致有2种方法: 方法一 ...
- 【Android】资源系列(二) -- 文件原样保留的资源assets和res/raw文件夹
这两个文件夹都能够存放文件.而在打包的时候被原样保留. 那用这两个文件夹可以做什么事呢? 1.放一个apk,要用的时候调出来.免得去下载server下载. 2.放一个sql,当app数据库非常大的时候 ...
- Homebrew命令具体解释
Homebrew命令具体解释 作者:chszs,未经博主同意不得转载.经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs 一.安装Homebrew Shell环境下 ...
- cocos2d-iphone 动作
(1)CCMoveTo [CCMoveTo alloc]initWithDuration:<#(ccTime)#> position:<#(CGPoint)#> 參数说明 : ...
- Windows下VS2013+Caffe无GPU配置
Windows版本的caffe工具包下载地址: 点击打开链接 1. 将下载的caffe-master.zip解压到 D:\Software\Caffe 文件夹下,把 D:\Software\Caffe ...
- 1.C语言指针学习之外挂篇
学习了c语言的指针,那么指针能做什么呢,首先,他可以写外挂 首先我们来编写一个dll,挂载到植物大战僵尸上,记住是dll,因为如果你创建一个应用程序,该应用程序是不能操作其他程序的地址的. 第一步,打 ...
- 关于ListView的一些不常用到的属性
1.setCacheColorHint自定义listview的时候,当你不使用Android:cacheColorHint=“#00000000”会出现下面选中一个空间黑色底色的情况,破坏整体美观度 ...