这是一个挺有意思的问题,很多公司也在面试中问过。挺简单的,不知道大家平时在重置密码的时候有没有想过这个问题。

回答这个问题其实就一句话:因为服务端也不知道你的原密码是什么。存原密码的程序员已经被开了 🤣。
如果服务端知道你的原密码,那就是严重的安全风险问题了。
我们这里来简单分析一下。
这是一个挺有意思的问题,很多公司也在面试中问过。挺简单的,不知道大家平时在重置密码的时候有没有想过这个问题。

回答这个问题其实就一句话:因为服务端也不知道你的原密码是什么。存原密码的程序员已经被开了 🤣。
如果服务端知道你的原密码,那就是严重的安全风险问题了。
我们这里来简单分析一下。
相关面试题:
- 前端做了校验,后端还还需要做校验吗?
- 前端已经做了数据校验,为什么后端还需要再做一遍同样(甚至更严格)的校验呢?
- 前端/后端需要对哪些内容进行校验?
咱们平时做 Web 开发,不管是写前端页面还是后端接口,都离不开跟数据打交道。那怎么保证这些传来传去的数据是靠谱的、安全的呢?这就得靠数据校验了。而且,这活儿,前端得干,后端更得干,还得加上权限校验这道重要的“锁”,缺一不可!
系统设计基础专题关注后端开发里最容易被忽略、但长期影响最大的工程能力:接口怎么设计、代码怎么命名、坏味道怎么识别、测试怎么写、需求到交付的过程如何组织。
这些内容看起来不像缓存、消息队列、分库分表那样“硬核”,但它们决定了系统能不能被团队长期维护。
认证授权与数据安全专题关注后端系统里非常基础、但出错成本很高的一条链路:用户如何登录、身份如何传递、权限如何判断、敏感数据如何保护、输入数据如何校验。
安全不是某一个框架或某一个注解能兜住的事情。它需要从认证、授权、传输、存储、展示、输入校验和审计等多个环节一起设计。
加密算法是一种用数学方法对数据进行变换的技术,目的是保护数据的安全,防止被未经授权的人读取或修改。加密算法可以分为三大类:对称加密算法、非对称加密算法和哈希算法(也叫摘要算法)。
日常开发中常见的需要用到加密算法的场景:
大部分软件开发从业者,都会忽略软件开发中的一些最基础、最底层的一些概念。但是,这些软件开发的概念对于软件开发来说非常重要,就像是软件开发的基石一样。这也是我写这篇文章的原因。
1968 年 NATO(北大西洋公约组织)提出了软件危机(Software crisis)一词。同年,为了解决软件危机问题,“软件工程”的概念诞生了。一门叫做软件工程的学科也就应运而生。
随着时间的推移,软件工程这门学科也经历了一轮又一轮的完善,其中的一些核心内容比如软件开发模型越来越丰富实用!
原文地址:https://juejin.cn/post/7122014462181113887,JavaGuide 对本文进行了完善总结。
我有一个朋友做了一个小破站,现在要实现一个站内信 Web 消息推送的功能,对,就是下图这个小红点,一个很常用的功能。

作者:转转技术团队
JWT (JSON Web Token) 是目前最流行的跨域认证解决方案,是一种基于 Token 的认证授权机制。 从 JWT 的全称可以看出,JWT 本身也是 Token,一种规范化之后的 JSON 结构的 Token。