学习区块链之后,发现还要学习加密,接触到的视频是:Go的crypto包,所以开始接触Go。因为和solidity有些相似,但是比solidity简单一些,就开始放松的心态去学习。
每天翻着go菜鸟教程,感觉简单的一批,可是当自己真要写代码的时候,就有点闷了.
--凡是还是得脚踏实地才行!
package main import "fmt" func main() { //var type_name []type /* 切片:[]无参数 数组:只能修改值,无法改变长度,无法添加新元素 固定长度 [n] [...] //根据元素的个数来设置数组的大小 */ var e []byte //var e []byte = make([]byte,len) //e := make([]byte,len) //var a = [5]byte //type [5]byte is not an expression,= []byte{}一定要加大括号 var a [6]byte var b = [...]byte{0} var f byte = b[0] //var c [...]byte //use of [...] array outside of array literal //b = append(b, byte(1)) //first argument to append must be slice; have [0]byte fmt.Println(a, b, e, f) padding([]byte{1, 2, 3, 4, 4, 4, 4, 5}, 3) } //简单DES加密初识 // DES1.go package main import ( "bytes" "fmt" ) func padding(src []byte, blockSize int) []byte { //1.截取加密代码 段数 fmt.Println("depadding", src) padding := blockSize - len(src)%blockSize //2.无余数 if padding == 0 { padText := bytes.Repeat([]byte{byte(blockSize)}, blockSize) src = append(src, padText...) } else { //else 一定直接要添加到该右括号的后面,不能令起一行 //3.有余数 padText := bytes.Repeat([]byte{byte(padding)}, padding) src = append(src, padText...) } //4.添加余数 //src = append(src, padText...) return src } func Depadding(src []byte) []byte { //1.取出最后一个元素 lasteum := int(src[len(src)-1]) //2.删除和最后一个元素相等长的字节 newText := src[:len(src)-lasteum] return newText } func main() { depadding := padding([]byte{1, 2, 3, 4, 5, 1, 2, 3}, 5) enpadding := Depadding(depadding) fmt.Println("enpadding", enpadding) } /*输出 depadding [1 2 3 4 5 1 2 3] enpadding [1 2 3 4 5 1 2 3] */