草庐IT

安全多方计算

全部标签

go - 如何同时遍历 N 个文件以计算唯一单词的出现次数

这是我计算文件中所有唯一单词出现次数的代码:packagemainimport("bufio""fmt""log""os")funcmain(){file,err:=os.Open("file1.txt")iferr!=nil{log.Fatal(err)}words:=make(map[string]int)/*askingscannertosplitintowords*/scanner:=bufio.NewScanner(file)scanner.Split(bufio.ScanWords)count:=0//scantheinpurtforscanner.Scan(){//get

security - 存储加密的 PEM block 安全吗?

我有一些使用Go的经验,但现在我并不真正了解我正在做的事情在安全方面的复杂性,所以我需要问一下。我正在创建一个RSA私钥,将其转换为PEM,然后使用密码对其进行加密。那么,将它存放在公共(public)场所有多安全?我不是在寻找诸如“没关系,随着时间的推移更改密码”之类的答案,我真的想知道Golang正在使用哪种密码机制来执行此操作,以及将加密的PEM留在其中是否安全,因为例如,公共(public)区block链以及为什么我可以做到或为什么不能。我将在这里留下我现在正在使用的代码:funcNew(passphrasestring)(*pem.Block,error){pk,err:=c

go - append() 在原子/线程中是安全的吗?

阅读几个列表后,我想将每个列表中的所有行添加到一个大数组中。我在它自己的goroutine中运行每个列表阅读器。我可以在阅读后立即追加一行吗?这个线程是保存还是可以在我手中爆炸?typelistHolder{entries[]entry}func(h*listHolder)readAllLists(s[]list){c:=make(chanlist)varwgsync.WaitGroupfor_,l:=ranges{wg.Add(1)goh.readSomeList(&wg,l)}c.close()wg.Wait()}func(h*listHolder)readSomeList(wg*

go - 一个 goroutine 从结构中读取而另一个 goroutine 正在修改它是否安全?

更具体地说,在我的例子中,我有一个网络服务器和一个全局可访问的结构,网络服务器使用它来生成页面。我有另一个Goroutine,它总是定期用新值更新该结构。这会引起问题吗?我是否需要实现一种机制来确保它在更新时不被读取? 最佳答案 不,这正是不安全的定义,会被racedetector捕获如果你测试过它。您绝对需要同步访问,例如使用sync.Mutexorsync.RWMutex.如果始终拥有最新值并不重要,您还可以允许每个goroutine缓存结构的副本,然后每隔一段时间定期从“主”副本更新它们的副本经常。如果经常访问该结构,这有助于

recursion - 为什么 Go 计算斐波那契递归这么快?

这不是它的正确版本,我只是在玩围棋,但我对围棋计算斐波那契数列中第42个(实际上是43个)数的速度如此之快感到震惊。有人可以解释一下为什么计算得这么快吗?我试着将它与python进行比较(我知道它比其他语言慢)但是python花了>1分钟,我不得不打破递归。packagemainimport"fmt"funcfib(auint)uint{ifa 最佳答案 它的编译器不如C的编译器聪明或成熟(至少现在还没有),但Go在时间性能上仍然比Python更接近C(空间性能是另一回事,而不是你问的)。作为一种编译型语言而不是一种解释型语言,它在

opencv - go 的计算机视觉在我尝试下载它时出现错误

当我使用命令时:$goget-u-dgocv.io/x/gocv我得到错误:包gocv.io/x/gocv:无法下载,/home/ariel/go是GOROOT,不是GOPATH。有关详细信息,请参阅:'gohelpgopath'我使用ubuntu18.04 最佳答案 看起来您已经将go二进制文件安装到默认GOPATH所在的位置。要么将GOPATH设置为不同的东西,要么移动你的安装。 关于opencv-go的计算机视觉在我尝试下载它时出现错误,我们在StackOverflow上找到一个类

go - 如何确保自定义数据结构的编译时安全

我正在编写一些数据结构来尝试并了解Go语言,并且正在为Go缺乏泛型而苦苦挣扎。在我的实现中,我选择强制每个用户实现一个接口(interface),这样我的结构就可以抽象地引用这些对象,但我不喜欢我的解决方案,因为正如您将看到的那样,这在编译时没有得到验证。比较接口(interface)保存在容器中的每个对象都必须实现以下签​​名的比较函数(如果您想要保存的都是原始类型,那就麻烦了)typeComparerinterface{Compare(Comparer)int}然后您可以拥有实现接口(interface)的各种元素,如float64或自定义结构:float64typenumberf

go - 如何计算 golang 中移动窗口的最后 60 秒?

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭3年前。Improvethisquestion我想知道golang中60s后如何根据移动窗口统计请求数?

apache - 如何计算每个 HTTP 请求的 CPU 使用率

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭3年前。Improvethisquestion我想获取发送到本地Apache服务器的每个单独请求的CPU使用率。我正在使用top来捕获CPU使用率,但它并不那么可靠,因为大多数时候它捕获0作为CPU使用率。我已经检查了psutil等实用程序,但它们不起作用?无论如何(Go中的一些代码或包)在这方面有帮助吗?P.S对我来说最好的方法是如果我无法在access.log文件中获取CPU使用率?

go - 如何计算文本中每个单词的出现次数

或者问题也可以是:Go获取词袋的方法是什么?例如,如果输入是"Thisisabigappletree.Ilovebigbigapple!42"然后我如何获得带有每个单词计数的map输出(并且,如果方便的话,沿途进行一些简单的字符串解析,例如只保留字母并降低它们):{this=1,is=1,a=1,big=3,apple=2,tree=1,i=1,love=1}一些Kotlin代码的简单版本可以是这样的:funmain(args:Array){valinputText="Thisisabigappletree.Ilovebigbigapple!42"valmap=inputText.re