最近看到一些初学的同学在讨论加密的问题。我也特此来写了一篇文章,介绍了一下加密和在我们工程中的使用。
前端加密
前端加密算法是指在客户端(浏览器或移动端)进行的数据加密。常见的前端加密算法包括:AES(高级加密标准)、RSA(非对称加密)、HMAC(散列消息验证码)等。
前端加密的应用通常用于保护数据在传输过程中的安全,以及防止数据在服务器端被窃取。例如,在网上银行或支付系统中,前端加密可以保护用户的账号和密码,以及交易信息不被窃取。但是需要注意,前端加密仅仅保证数据在传输过程中的安全,而不能完全保证数据的安全。因此,一般来说,前端加密应该与后端加密配合使用,以提高数据安全性。
因为前端代码本身具有开源性等一系列原因,前端代码虽然能在一定程度上保护数据,服务器和用户的安全隐私数据,但是因为前端的一些不安全的问题,他不能完全被依赖于数据的加密保护,我们还要在后端进行校验和加密。
后端加密
后端加密算法是指在服务器端进行的数据加密。常见的后端加密算法同样包括:AES(高级加密标准)、RSA(非对称加密)、SHA(安全散列算法)等。
后端加密的应用通常用于保护数据存储的安全,以及防止数据被非法访问。例如,在电子商务、金融、医疗等行业中,后端加密可以保护用户的敏感信息,如个人身份信息、财务信息等。除此之外,后端加密还可以用于数据库加密,以保护数据库中存储的敏感信息。
但是,后端加密也不是绝对安全的,它可能存在实现漏洞或被攻击者暴力破解等风险。因此,后端加密需要与其他安全措施配合使用,如数据加密存储、备份、安全审计等,以保证数据安全。比如在一些暴力的场景下我们的数据密码可能依然会被破解,我们也可以根据需求在硬件等其他方面加强防御措施和应对策略。
使用
我们在工程中使用往往不会自己写加密算法,可能会使用别人写好的库或者依赖项,比如jwt等等。