学习区块链之后,发现还要学习加密,接触到的视频是: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]
*/