大家知道任何平台,其安全性都是至关重要的,出现的任何漏洞都有可能导致文件的丢失或者不法分子的侵入。因此为了强化TSINGSEE青犀视频云边端平台的安全性,我们在EasyNVR上对用户名密码及页面的传输进行了新的加密。

原本EasyNVR上认证或者修改密码等传输过程中密码只是MD5加密,传输的密码通过某种手段可以在网上反解出来,一定层面上还需提高安全性。


因此我们需要对敏感信息进行加密后再传输,于是就在MD5加密之后在RSA加密一次,并且将传输敏感信息页面采用https协议。
-
var publicKey =
`-----BEGIN PUBLIC KEY-----
-
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0GTl+iyP1YeNWz8ru2er
-
x1icc5+mckDfCjkrtVs43fIsA8m4UMv/KpHXGgywKGoOleBEoSJAGzaAWYpUSBat
-
7/Y9+iRSL60uBJX4RePhKz16Uw77jwBBcHF1Zv0qWRb3uD+PDAruFdzmOe+rnse7
-
pihy8HJD9RwEqXiSDimeNXtXkBfIYHl1CTwebQdavTKxOcaCKQ30zcb+uj/5SqSy
-
4sgPlO+hVZQhCEPGiGFoDpzAvDWqZtevG36nsRKkF6i/fJJz+fDXLEcz8+Q0/isv
-
iL7DwZ9Vlqitgx0ODv4As31YLaq67Z43UyPzvrnC80NbBt+B0RYbkQrLLCC6iQ/n
-
IQIDAQAB
-
-----END PUBLIC KEY-----`
-
-
// RSA解密 发送过来的数据
-
func RsaDecrypt(password string) (string, error) {
-
// 经过base64加密后数据+号会变成空格
-
passwordEncrypt := strings.ReplaceAll(password,
" ",
"+")
-
b, _ := base64.StdEncoding.DecodeString(passwordEncrypt)
-
block, _ := pem.Decode([]
byte(privateKey))
-
private, _ := x509.ParsePKCS1PrivateKey(block.Bytes)
-
res, err := rsa.DecryptPKCS1v15(rand.Reader, private, b)
-
if err !=
nil {
-
return
"", err
-
}
-
return
string(res),
nil
-
}
-
在登录接口中,先RSA解密密码,然后在和数据库的密码对比查看是否正确,正确则登录成功,不正确则登录失败。以下为RSA解密参考代码。

-
func (h *APIHandler)
Login(
c *gin.
Context) {
-
if isLoginLocked() {
-
c.
AbortWithStatusJSON(
401, fmt.
Sprintf(
"登陆已锁定,请%d分钟后重试", loginLockedDur-(time.
Now().
Unix()-loginLockedTime)/
60))
-
return
-
}
-
type
Form
struct {
-
Username string `form:
"username" binding:
"required"`
-
Password string `form:
"password" binding:
"required"`
-
}
-
var form
Form
-
if err :=
c.
Bind(&form); err !=
nil {
-
return
-
}
-
// 进行RSA解密
-
password, err := global.
RsaDecrypt(form.
Password)
-
if err !=
nil {
-
incLoginFailedCount()
-
c.
AbortWithStatusJSON(
401,
"密码加解密错误")
-
return
-
}
-
form.
Password = password
-
}
目前EasyNVR及EasyCVR等视频平台也在进行部分细节的优化,如果大家有兴趣,也欢迎大家测试,TSINGSEE青犀视频官方网站即可下载试用EasyNVR,我们提供为期30天的免费试用天数,试用期间也可自由调用二次开发接口或者进行集成,欢迎大家了解。
转载:https://blog.csdn.net/EasyNVR/article/details/111309688
查看评论