服务端优化Cookie验证与技术总结.pdfVIP

  • 0
  • 0
  • 约4.48千字
  • 约 6页
  • 2026-01-20 发布于北京
  • 举报

10‑9【阶段总结】服务端优化验证基础实现

【阶段总结】服务端优化验证基础实现

章节总结

一、和Session的区别

1.数据存放在客户的浏览器上,session数据放在服务器

上;2.Session保存在服务器上,当增多,会比较占用大量资

源;3.单个保存的数据过4K;

二、登陆代码改造加密部分

1.创建AES密钥不能;

varPwdKey=[]byte(DIS**#KKKDJJSKDI)

2.AES加密PKCS7填充模式

//PKCS7填充模式

funcPKCS7Padding(ciphertext[]byte,blockSizeint)[]byte{padding:=

blockSize‑len(ciphertext)%blockSize//Repeat()函数的功能是把切片[]

byte{byte(padding)}padding个,然后合并成新的字节切片返回padtext:=

bytes.Repeat([]byte{byte(padding)},padding)returnappend(ciphertext,

padtext...)}

3.实现加密

funcAesEcrypt(origData[]byte,key[]byte)([]byte,error){//创建加密

算法实例block,err:=aes.NewCipher(key)

10-9【阶段总结】服务端优化验证基础实现

【阶段总结】服务端优化验证基础实现

章节总结

一、和Session的区别

1.数据存放在客户的浏览器上,session数据放在服务器上;

2.Session保存在服务器上,当增多,会比较占用大量资源;

3.单个保存的数据过4K;

二、登陆代码改造加密部分

1.创建AESkey不能;

varPwdKey=[]byte(DIS**#KKKDJJSKDI)

2.AES加密PKCS7填充模式

//PKCS7填充模式

funcPKCS7Padding(ciphertext[]byte,blockSizeint)[]byte

{padding:=blockSize-len(ciphertext)%blockSize

//Repeat()函数的功能是把切片[]byte{byte(padding)}padding

个,然后合并成新的字节切片返回

padtext:=bytes.Repeat([]byte{byte(padding)},padding)

returnappend(ciphertext,padtext...)

}

3.实现加密

funcAesEcrypt(origData[]byte,key[]byte)([]byte,error){

//创建加密算法实例

block,err:=aes.NewCipher(key)

iferr!=nil{returnnil,err}//获取块的大lockSize:=

block.BlockSize()//对数据进行填充,让数据长度满足需求origData=

PKCS7Padding(origData,blockSize)//采用AES加密方法中CBC加密模式

blocMode:=cipher.NewCBCEncrypter(block,key[:blockSize])crypted:=

make([]byte,len(origData))//执行加密blocMode.CryptBlocks(crypted,

origData)returncrypted,nil}

4.浏览器需要可读的加密串,因此需要对加密后的结果进行base64

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档