Go语言中文网 为您找到相关结果 9

golang map to struct

map映射到结构体,这里只支持简单的数据类型,复杂的需要在拓展 package main import ( "errors" "fmt" "reflect" "strconv" "time" ) type User struct { Name string Age int8 Date time.Time } func main() { data := make(map[string]interface{}) data["Name"] = "张三" data["Age"] = 26 data["Date"] = "2015-09-29 00:00:00" result := &User{} err := FillStruct(data, result) fmt.Println(err, fmt...阅读全文

博文 2015-09-29 16:00:03 别人说我名字很长

golang 依赖注入

使用facebook的三方库:https://github.com/facebookgo/inject type C struct{ B *B `inject:""` } type B struct{ A *A `inject:""`//这里会根据注入对象的Name字段有选择的进行注入 } type A struct{ Name string } var injectGraph inject.Graph func main() { a := A{ name: "hello", } a2 := A{ Name: "hello2", } c := C{} err := injectGraph.Provide(//对象提供者 &inject.Object{Value: &a}, &inject.O...阅读全文

博文 2019-02-23 17:34:44 杜子龙

golang aes ecb 加密

代码地址:https://github.com/FakerGit/go-tools 加密模式 AES ECB模式 PKCS7Padding填充 原理 整个明文分成若干段相同的小段,然后对每一小段进行加密。这个是不安全的,重复的原文块加密后会是重复的结果,很明显暴露明文的模式。 代码 func PKCS7Padding(ciphertext []byte, blockSize int) []byte { padding := blockSize - len(ciphertext)%blockSize padtext := bytes.Repeat([]byte{byte(padding)}, padding) return append(ciphertext, padtext...) } fu...阅读全文

博文 2019-07-27 14:32:38 HollowKnight

golang练习:Reader

实现一个 Reader 类型,它产生一个 ASCII 字符 'A' 的无限流。 题目理解:无限流的意思就是 返回值中 error不会存在 EOF的情况,并且会填充一个A因为A只有一个字节,所以int返回的是1 package main import "golang.org/x/tour/reader" type MyReader struct{} // TODO: 给 MyReader 添加一个 Read([]byte) (int, error) 方法 func (m MyReader) Read(b []byte) (int, error) { b[0] = "A" return 1 nil } func main() { reader.Validate(MyReader{}) ...阅读全文

博文 2019-12-30 02:32:38 该用户太帅没有设置昵称

golang AES CBC加密与解密

golang实现 AES CBC加密与解密 实现方法 package utils import "crypto/aes" import "crypto/cipher" import "bytes" import "encoding/base64" import "log" import "../config" var key = []byte(config.REQ_KEY) var iv = []byte(config.REQ_IV) func Encrypt(text []byte) (string,error) { //生成cipher.Block 数据块 block, err := aes.NewCipher(key) if err != nil { log.Println("错误 -...阅读全文

博文 2019-07-17 15:32:44 simon_白

go.js模型样式选择

一、使用官方样式 样式(shapes)地址:http://gojs.net/latest/samples/shapes.html 使用方法: myDiagram.nodeTemplateMap.add("End", $(go.Node, "Spot", nodeStyle(), $(go.Panel, "Auto", $(go.Shape, "Circle", // 在此处设置样式 { minSize: new go.Size(40, 40), fill: "#DC3C00", stroke: null }), $(go.TextBlock, "End", { font: "bold 11pt Courier New,Microsoft Yahei", stroke: lightText }...阅读全文

博文 2017-03-10 07:00:50 孟飞阳

不带模式和填充来获取AES算法-JAVA与Golang的互通

重要: 在Java中不带模式和填充来获取AES算法的时候,其默认使用AES/ECB/PKCS5Padding!!! 1 Java的AES加解密 如果把Cipher.getInstance("AES");中的"AES"换成"AES/ECB/PKCS5Padding",效果是一样的。 1.1 加密操作 /** * Description: 加密操作
* * @param data 待加密数据 * @param key 密钥 * @return 加解密后的信息 * @throws Exception
*/ public static byte[] encrypt(byte[] data, byte[] key) throws Exception { Key secretKey ...阅读全文

博文 2019-03-25 02:34:38 clawhub