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

密码学系列 - 签名

签名是用于消息的认证,保证该条消息不被伪造。本文主要讨论RSA签名、DSA、ECDSA 和 Schnorr 签名算法。 RSA签名 安全性建立在大数分解问题 公钥:E、N 私钥:D、N 签名:签名 = 消息^D mod N 验证:消息' = 签名^E mod N ,如果消息'==消息则验证成功 DSA 由NIST(美国国家标准技术研究所)1991年制定的数字签名技术规范,是Schnorr算法的变体。 安全性建立在离散对数问题 密钥生成(1024bits): 生成素数 p, 找到 p-1 的一个素数 q,且 找到 ord(a)=q 的元素 a,a 生成了拥有 q 个元素的子群 生成随机数,0 < d < q b = mod p 则密钥对为: = (p,q,a,b), = (d) 签名生成: 随...阅读全文

博文 2019-10-28 19:32:47 aside section._1OhGeD

golang 学生管理

package main import ( "fmt" "os" ) type Student struct{ id int name string age int classroom int dorm int } var students []*Student type ManageStudent struct{} func (m *ManageStudent) AddStudent(s *Student){ students = append(students, s) fmt.Println("add success") } func (m *ManageStudent) DelStudent(id int){ var is_find = false for index, student...阅读全文

博文 2019-12-10 03:32:40 就超棒

【Golang基础】 Android工程师学Golang(1)

Golang函数 注:是用的测试方法写的例子。 Golang所有都是传值,不是传引用 为什么会出现,函数内部的修改,会影响外部的变量的情况,例如切片背后对应的是一个数组,这个数据结构包含指针,在赋值的过程中结构被复制了,结构被改变所以外部也被改变了,例如:slice,map,channel. 函数可以有多个返回值:和Java不一样,Golang可以有多个返回值 package fn__test import ( "math/rand" "testing" "time" ) func returnMultiValues() (int, int) { // 加入随机,如果不加就会是一个固定的值 rand.Seed(time.Now().UnixNano()) return rand.Intn(1...阅读全文

博文 2019-06-16 00:32:40 不说话的唐僧