平面点对问题------解法1:暴力打擂法

1.线程概述

  返回  

项目日志5

2021/8/20 21:57:28 浏览:

1.工作内容:

(1) 对之前重构好的几个文件进行了功能测试,单独的文件测试是没有问题的,尤其是对crypto.go和get_hash.go进行了加解密测试,功能检测正常。

(2) 和组长对架构图进行讨论画出了一幅更加详细的架构图。

(3) 接收新的任务完成analyze_object.go的重构内容,其实之前有重构这个文件的一部分,但是对于提到正则表达式的内容不是很理解。

昨天测试不成功的加解密今天测试成功了:

```

package WhosBug



import (

"crypto/aes"

"crypto/cipher"

"crypto/hmac"

"crypto/md5"

"crypto/rand"

"crypto/sha256"

"encoding/base64"

"io"

)

func generateK(project_id string, secret string)[]byte {



secreter := []byte(secret)

hk := hmac.New(sha256.New, secreter)

hiv:=hmac.New(md5.New,secreter)

hk.Write([]byte(project_id))

hiv.Write([]byte(project_id))

K:= hk.Sum(nil)

/*IV:=hiv.Sum(nil)*/

/*fmt.Println(K)

fmt.Println(IV)*/

return K



}

/*func generateIV(project_id string, secret string)[]byte {



secreter := []byte(secret)

hk := hmac.New(sha256.New, secreter)

hiv:=hmac.New(md5.New,secreter)

hk.Write([]byte(project_id))

hiv.Write([]byte(project_id))

/*K:= hk.Sum(nil)*/

/*IV:=hiv.Sum(nil)*/

/*fmt.Println(K)

fmt.Println(IV)*/

/*return IV*/





func AesEncryptCFB(project_id string, secret string,plain string) string/*[]byte*/ {

key:=generateK(project_id,secret)

K:=[]byte(key)

pl:=[]byte(plain)



block, err := aes.NewCipher(K)

if err != nil {

panic(err)

}

encrypted:= make([]byte, aes.BlockSize+len(pl))

iv := encrypted[:aes.BlockSize]

if _, err := io.ReadFull(rand.Reader, iv); err != nil {

panic(err)

}

stream := cipher.NewCFBEncrypter(block, iv)

stream.XORKeyStream(encrypted[aes.BlockSize:], pl)

/*return encrypted*/

return base64.StdEncoding.EncodeToString(encrypted)



}

func AesDecryptCFB(project_id string, secret string,cipher_text string) string/*byte*/{

key:=generateK(project_id,secret)

K:=[]byte(key)

ci:=[]byte(cipher_text)

block, _ := aes.NewCipher(K)

if len(ci) < aes.BlockSize {

panic("ciphertext too short")

}

iv := ci[:aes.BlockSize]

ci = ci[aes.BlockSize:]



stream := cipher.NewCFBDecrypter(block, iv)

stream.XORKeyStream(ci, ci)

/*return ci*/

return string(ci)

}





```

2.遇到的问题:

对即将重构的analyze_object.go里面的正则表达式还没有理解,暂时没有展开重构工作,把这里的重构工作安排到明天来完成。画出来的架构图虽然比上一次要清晰许多,但是对于要在架构图中展现的主要内容还是不太清楚,觉得还是得完善一下。

3.收获:通过这几天的重构任务还是对之前没接触过的python和golang有了进一步的认识,可以说执行重构任务对这两种语言的学习效率是比较高的。

联系我们

如果您对我们的服务有兴趣,请及时和我们联系!

服务热线:18288888888
座机:18288888888
传真:
邮箱:888888@qq.com
地址:郑州市文化路红专路93号