前言
这是我的建议如何成为白帽黑客,你应该按照下面顺序学习。
简要说明
第一件事你应该学习如何编程,我建议首先学 Python,然后是 Java。
网络安全入门需掌握编程、操作系统、网络协议及密码学基础。学习路线涵盖法律法规、系统运维、Web 技术栈及常见漏洞攻防。建议通过实战夺旗赛及安全会议积累经验,构建完整知识体系。

这是我的建议如何成为白帽黑客,你应该按照下面顺序学习。
第一件事你应该学习如何编程,我建议首先学 Python,然后是 Java。
(非必须)接下来学习一些算法和数据结构是很有帮助的,它将帮助你更好的编程。
一旦你学会如何编程,你应该学习如何用 C 编程。重点关注以下话题:结构体、指针的算术运算、传值调用和引用调用、字符串 IO 基础、宏、条件编译、程序结构。
学习 UNIX 操作系统基础:Unix shells、shell 变量、文件系统、通用 Unix 命令、Shell 脚本编程、Unix Shell 环境。
(非必须)学习汇编语言。理解汇编语言如何转化为机器码再转化为可被计算机硬件执行的程序。并且你应该学习如何分析汇编程序,这对逆向工程很有用。
理解计算机操作系统及架构、进程管理、内存管理、文件系统接口和实现、IO 系统、分布式系统、计算机网络、Java 网络编程、防护与安全。理解系统管理员、计算机系统基础组成,对计算机主要组件和结构有宏观的认识。
进程管理:进程、线程、进程同步、CPU 调度、Java 多线程编程,以及死锁。内存管理:主内存和虚拟内存。
体验不同操作系统例如 Windows、Unix、Linux 命令行与 GUI 模式。
(非必须)学习密码学也是很有用的,密码学中的数学很有用。传统对称密钥,现代对称密钥、RSA、数字签名等等,应用层安全:PGP、S/MIME。
理解计算机网络和 Internet 应用层:Web、HTTP、FTP、DNS 和 Socket 通信。传输层:UDP、TCP、和拥塞控制等。另一些不错的话题:网络管理、Wireshark 网络流量分析、渗透测试和网络安全、你也可以深入计算机和网络取证、漏洞和恶意软件分析、低层次协议包分析、理解软件工程。理解软件开发阶段,包括需求、文档、设计、编码、测试和维护,软件开发模型的优缺点。
在学术之外,也有其它的比较好的事情:参加夺旗战、在有一定基础参加安全会议,经常访问安全网站,在你学了一些网站相关知识,尝试建立属于自己的网站。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online
JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online
使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online
Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online