第八章 GO语言安全编程

一:数据加密
      1,采用单秘钥的加密算法,我们称对称加密,主要有如下几个部分组成,需要加密的明文,加密算法和秘钥,在加密和解密中使用的秘钥只有一个,常见的单秘钥加密算法有DES,AES,RC4等等
 
       2,采用双秘钥加密的加密算法,我们称非对称算法,主要有如下几个部分构成,需要加密的明文,加密算法,私钥和公钥。在系统中私钥和公钥都可以用作加密和解密,但是用私钥加密的明文,必须要用对应的公钥解密,用公钥加密的明文,必须使用私钥解密,常见的双秘钥加密算法有RSA
       3,数字签名,是指用于标记数字文件拥有者,创造者,发布者身份的字符串,数字签名拥有标记文件身份,分发报的不可抵赖性等 ,目前常用的数字签名采用了非对称加密
       4,PKI体系,全称公钥基础设施,是使用非对称加密理论。提供数字签名,加密,数字证书等服务的体系,一般包含权威认证机构(CA),数字证书库,秘钥备份和恢复系统,证书作废系统,应用接口(API)等 
 
package main
 
import (
"crypto/md5"
"fmt"
"crypto/sha1"
"os"
"io"
)
 
func main() {
TestString :="Hi,pandanman"
Md5Inst :=md5.New()
Md5Inst.Write([]byte(TestString))
Result :=Md5Inst.Sum([]byte(" "))
fmt.Println("Md5加密结果:",Result)
 
 
ShaInst :=sha1.New()
ShaInst.Write([]byte(TestString))
Rest :=ShaInst.Sum([]byte(" "))
fmt.Println("sha加密结果:",Rest)
 
//加密文档
testpath :="D:/Go_work/safe_Go/123.txt"
file,err :=os.Open(testpath)
if err !=nil{
fmt.Println("打开文件出错")
os.Exit(1)
return
}
md5h :=md5.New()
io.Copy(md5h,file)
fmt.Println("md5加密文档内容:",md5h.Sum([]byte("")))
 
sha1h :=sha1.New()
io.Copy(sha1h,file)
fmt.Println("sha加密文档内容:",sha1h.Sum([]byte("")))
}
 
 
https支持:
 
package main
 
import (
"net/http"
"fmt"
)
 
const(
Server_Port=8080
Server_Domain="localhost"
ResPon="hello"
)
 
func rootHandler(w http.ResponseWriter,r *http.Request) {
w.Header().Set("Content-Type","text/html")
w.Write([]byte(ResPon))
}
 
func main() {
http.HandleFunc(fmt.Sprintf("%s:%d",Server_Domain,Server_Port),rootHandler)
http.ListenAndServeTLS(fmt.Sprintf(":%d",Server_Port),"rui.crt","rui.key",nil)
}
 

转载于:https://www.cnblogs.com/netbuy/articles/9415643.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值