Golang(13)Security and Secret
1. Simple BASE64
package main
import (
"encoding/base64"
"fmt"
)
func base64Encode(src string) string {
return base64.StdEncoding.EncodeToString([]byte(src))
}
func base64Decode(src string) (string, error) {
c, err := base64.StdEncoding.DecodeString(src)
return string(c), err
}
func main() {
// encode
hello := "hello sillycat, you will do auth again."
debyte := base64Encode(hello)
fmt.Println(debyte)
// decode
enbyte, err := base64Decode(debyte)
if err != nil {
fmt.Println(err.Error())
}
if hello != enbyte {
fmt.Println("hello is not equal to enbyte")
}
fmt.Println(enbyte)
}
2. AES and DES
AES(Advanced Encryption Standard), DES(Data Encryption Standard)
Go AES is just using a module
package main
import (
"crypto/aes"
"crypto/cipher"
"fmt"
"os"
)
var commonIV = []byte{0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f}
func main() {
//需要去加密的字符串
plaintext := []byte("My English name is Carl")
//如果传入加密串的话,plaint就是传入的字符串
if len(os.Args) > 1 {
plaintext = []byte(os.Args[1])
}
//aes的加密字符串
key_text := "astaxie12798akljzmknm.ahkjkljl;k"
if len(os.Args) > 2 {
key_text = os.Args[2]
}
fmt.Println(len(key_text))
// 创建加密算法aes
c, err := aes.NewCipher([]byte(key_text))
if err != nil {
fmt.Printf("Error: NewCipher(%d bytes) = %s", len(key_text), err)
os.Exit(-1)
}
//加密字符串
cfb := cipher.NewCFBEncrypter(c, commonIV)
ciphertext := make([]byte, len(plaintext))
cfb.XORKeyStream(ciphertext, plaintext)
fmt.Printf("%s=>%x\n", plaintext, ciphertext)
// 解密字符串
cfbdec := cipher.NewCFBDecrypter(c, commonIV)
plaintextCopy := make([]byte, len(plaintext))
cfbdec.XORKeyStream(plaintextCopy, ciphertext)
fmt.Printf("%x=>%s\n", ciphertext, plaintextCopy)
}
A tool for string HEX
http://www.string-functions.com/hex-string.aspx
References:
https://github.com/astaxie/build-web-application-with-golang/blob/master/ebook/09.6.md
- 浏览: 2567771 次
- 性别:
- 来自: 成都
-
最新评论
-
nation:
你好,在部署Mesos+Spark的运行环境时,出现一个现象, ...
Spark(4)Deal with Mesos -
sillycat:
AMAZON Relatedhttps://www.godad ...
AMAZON API Gateway(2)Client Side SSL with NGINX -
sillycat:
sudo usermod -aG docker ec2-use ...
Docker and VirtualBox(1)Set up Shared Disk for Virtual Box -
sillycat:
Every Half an Hour30 * * * * /u ...
Build Home NAS(3)Data Redundancy -
sillycat:
3 List the Cron Job I Have>c ...
Build Home NAS(3)Data Redundancy
相关推荐
现在,您可以非常轻松地做到这一点! 使用秘密{-e /-encrypt | -d /-decrypt} [ ]秘密[-h /-帮助| -v /-version]例如,运行:echo“ foobardata”> foo.txt secret --encrypt ...然后,当您想要解密foo.txt.secret时,
... 这既是真正的自定义Vault机密插件,又是如何构建,安装和维护自己的Vault机密插件的示例。 设置设置指南假定您对Vault和Vault的插件生态系统有所了解。 您必须已经有Vault服务器正在运行,未密封并已通过身份验证...
ssh-vault:chestnut:使用ssh私钥加密/解密文档https://ssh-vault.com用法$ ssh-vault -h示例:$ echo“ secret” | ssh-vault -u 创建ssh-vault:chestnut:使用ssh私钥加密/解密文档https://ssh-vault.com用法$ ssh-...
与golang.org/x/crypto/nacl中的实现相比,该库提供了NaCL中存在的所有API,与用其他语言编写的NaCL实现更好的兼容性,以及一些用于生成和加载密钥和随机数的实用程序,以及加密消息。 其中许多是Go标准库或golang...
安装将redis克隆存储库安装到$ GOPATH / src / github.com / octohedron / gauth安装依赖项$ go获取设置环境变量$ export AUTH_PORT = YOUR_PORT#即8000 $ export SIGN_KEY = secret#您的jwt签名密钥用法$ go ...
kustomize-age是kustomize的插件,它允许用户保留使用年龄加密的本地文件,这些文件在用作kubernetes Secret内部文件之前已解密。 kustomize-age是kustomize的插件,它允许用户保留使用年龄加密的本地文件,这些文件...
.env.production文件放错位置以及工作站周围的更多内容,只需使用柜员并将其连接到您喜欢的任何保管库,密钥库或云服务(交易商支持Hashicorp Vault,AWS Secrets Manager,Google Secret Manager等)。 你c
进入钥匙圈库 go-keyring是一个与操作系统...依存关系OS X OS X的实现依赖于/usr/bin/security二进制文件与OS X的钥匙串连接。 默认情况下应可用。Linux Linux的实现取决于提供的 dbus接口。 可以预期,默认的集合lo
client, err := sms.NewClientWithAccessKey("your_region_id", "your_access_key_id", "your_access_key_secret") if err != nil { return err } request := sms.CreateSendSmsRequest() request.Scheme = ...
KeyNuker的工作原理是通过分析源代码中的字符串,查找与AWS Identity and Access Management(IAM)密钥相关的模式。它能够识别多种密钥格式,包括Access Key ID和Secret Access Key。一旦检测到潜在的密钥泄露,...
它是官方Vault客户端的包装,具有自动令牌更新和内置的Kubernetes支持,以及基于Golang database/sql的客户端的动态数据库凭据提供程序。 它具有一个CLI工具,可以自动初始化,解封和配置Vault。 它还提供了用于...
sup3rS3cretMes5age!... (您可以忽略安全警告,因为它是自签名证书) https://localhost让我们加密运行克隆此仓库确保在服务器上安装了docker和docker-compose 运行DOMAIN=secret.example.com mak
Gitleaks的目标是成为一种易于使用的多合一解决方案,用于在您的代码中查找过去或现在的秘密。特征: 扫描秘密扫描未机密,作为向左转移安全性的一部分扫描可用的通过toml配置的使用高性能JSON,SARIF和CSV报告使用...
envkey-go 将与Go项目集成,以安全,自动地为开发人员和服务器同步api密钥,凭据和其他配置。 安装 ...用法 首先,在生成一个ENVKEY 。 然后在项目根目录(开发中)或环境变量(服务器上)中的gitignored .env文件中...
envkey源通过使您的配置可以通过Shell作为环境变量使用,从而将与开发或服务器上的任何语言集成。安装envkey-source可以编译成没有依赖性的简单静态二进制文件,这使得安装很简单,只需为平台获取正确的二进制文件并...
在网络安全领域,TLS(Transport Layer Security)协议是用于保护网络通信的重要工具,它确保了数据传输的机密性和完整性。TLS证书是验证服务器身份的关键部分,对于运行HTTPS服务的网站至关重要。`certmanager` 是...
剥皮机 讲故事给您泄露秘密! Squealer扫描本地git存储库,以查找在提交历史记录深处泄露的机密。 内置配置具有以下检查...Telling tales on your secret leaking Usage: squealer [flags] Flags: --concise Reduc