草庐IT

bytes_write

全部标签

encryption - 在 golang 中向 byte slice 添加填充的正确方法?

我试图在go中加密一些数据,但它几乎不是正确的cipher.BlockSize。是否有添加填充的“内置”方式,或者我应该使用函数手动添加它?现在这是我的解决方案://encrypt()encryptsthemessage,butsometimesthe//messageisn'ttheproperlength,soweaddpadding.funcencrypt(msg[]byte,key[]byte)[]byte{cipher,err:=aes.NewCipher(key)iferr!=nil{log.Fatal(err)}iflen(msg) 最佳答案

go - byte[] channel 使用

我收到一个REST命令,想计算它的哈希函数。为此,我使用io.TeeReader(request.Body,&writerToHash)读取正文,我在其中传递了我自己的实现io.Writer的类:func(self*WriterToHash)Write(p[]byte)(nint,errerror){n=len(p)fmt.println("WriterToHashlen=%v,buff=%v",n,p)//PRINT1self.BodyChannelBodyChannel定义为:BodyChannelchan[]byte我按如下方式使用这个类:writerToHash:=sisuti

java - 将 byte slice 中的负数转换为 int

我需要帮助Debezium(https://debezium.io/)将十进制数字转换为base64字符串中的整数,精度作为json中的参数在java中,它像这个例子一样解码importjava.math.BigDecimal;importjava.math.BigInteger;importjava.util.Base64;publicclassHelloWorld{publicstaticvoidmain(String[]args){Stringencoded="lTBA";intscale=4;finalBigDecimaldecoded=newBigDecimal(newBig

go - 使用 Go,如何将未知数量的字节附加到向量中并获取 byte slice 段?

我正在尝试将大量数字编码为字节列表(Go中的uint8)。字节数未知,所以我想使用向量。但是Go不提供字节向量,我该怎么办?是否有可能获得这样一个字节向量的一部分?我打算实现数据压缩。而不是用相同的字节数存储小数和大数,我实现了一个可变字节,它使用较少的字节数和更多的字节数。我的代码无法编译,类型断言无效:1packagemain23import(4//"fmt"5"container/vector"6)78funcvbEncodeNumber(nuint)[]byte{9bytes:=new(vector.Vector)10for{11bytes.Push(n%128)12ifn我希

byte - 如何将 4 字节的 slice 转换为 rune ?在围棋

我有rune的内存表示key:=make([]byte,4)现在,如何将它转换为rune? 最佳答案 有一个专用的DecodeRune功能:funcDecodeRune(p[]byte)(rrune,sizeint)DecodeRuneunpacksthefirstUTF-8encodinginpandreturnstheruneanditswidthinbytes.Iftheencodingisinvalid,itreturns(RuneError,1),animpossibleresultforcorrectUTF-8.所以你只

GoLang, "hash.Write", "write()"函数是从哪里来的?

funchash(sstring)uint32{h:=fnv.New32a()h.Write([]byte(s))returnh.Sum32()}对于这段代码。我明白h是什么类型。它是哈希。但是对于Hash类型,我没有看到任何Write()方法。http://golang.org/pkg/hash/这是什么Write()?谢谢 最佳答案 Hash接口(interface)嵌入Writer界面。因此,任何类型想要实现Hash接口(interface),也需要实现包含Write方法的Writer接口(interface)。使用Write

networking - Write In Golang是否需要检查返回的 "n"

我有一个服务器并启动了一个goroutine来发送数据。像这样的代码funchandleSend(conn*net.TcpConn,ch今天,我想我应该检查conn.Write返回的n以确保msg被完整写入。所以我在这里的地方添加了下面的代码for;n!=len(msg);{log.Error("connwritenotcompletely",len(msg),"actually",n)msg=msg[n:]n,err=sess.conn.Write(msg)iferr!=nil{log.Error("connwriteerror",err)return}}我想知道这样做是否正确?PS

tcp - 在 golang 中,TCPConn.Write/Read 会返回什么错误?

在golang中,你会如何处理TCPConn.Read/Write返回的错误?这个document没有说任何关于读/写错误的信息。 最佳答案 TCPConn上的Read和Write可能会返回您的操作系统、硬件和驱动程序的组合可能会返回的大部分错误,以及一些net包错误,以及io.EOF适用时。因此,真正由您决定要查找哪些错误以及如何处理它们。网络API的每一层,甚至是berkeleysocketapi,都是一个有漏洞的抽象,如果不了解实际的套接字和网络协议(protocol)是如何工作的,就无法充分利用它。通常你只需要关心io.EO

types - 不能在函数参数中使用 document[0](类型 uint8)作为类型 []byte

我正在尝试从文档中提取一个JSON字符串并放入GOlang中的SimpleJson中,尽管我遇到了类型问题(再次..)我收到以下错误:cannotusedocument[0](typeuint8)astype[]byteinfunctionargument出错的行是:js,err:=simplejson.NewJson(document[0])谁能帮我解决这个问题,还有我可以阅读有关类型和转换的好地方吗?来自没有类型的php和转换很简单的python,GO在这方面有点困惑。谢谢:-) 最佳答案 首先,uint8只是byte的别名。因

go - byte内置类型,不应该是uint8吗?

我发现typebytebyte在bytegodoc中非常困惑,不应该是typebyteuint8吗?byteisanaliasforuint8andisequivalenttouint8inallways.Itisused,byconvention,todistinguishbytevaluesfrom8-bitunsignedintegervalues.typecomplex128 最佳答案 没有真正的内置包。但是为了解释内建函数,为godoc生成了一个带有synthetic类型的内建函数包。byte类型从未真正声明为typeby