202305

密码学

2023年5月20日
202305
202305, cryptography

reference # cryptography https://learn-cryptography.readthedocs.io/zh/latest/basic/ https https://www.bilibili.com/video/BV1KY411x7Jp/?spm_id_from=333.337.search-card.all.click&vd_source=dfa9bf517c1718c832302c15f80df948 密码学 # 凯撒密码: 平移 置换密码: 替换 通过letter frequency分析, 可以破解 one-time pad: 一次性密码本 import random def generate_key(n): return bytes([random.randrange(0, 256) for i in range(n)]) def xor(key, message): return bytes([key[i % len(key)] ^ message[i] for i in range(len(message))]) message = b"ATTACK" key = generate_key(len(message)) print("Key: ", key) cipher = xor(key, message) print(cipher) plain_text = xor(key, cipher) print(plain_text) # 伪随机(线性同余) m = 2 ** 31 a = 1103515245 c = 12345 def lcg(a, c, m, seed): return (a * seed + c) % m seed = 1 for _ in range(10): seed = lcg(a, c, m, seed) print(seed) 流密码 ...

react

2023年5月1日
202305
202305, react

react基本原理 # https://www.bilibili.com/video/BV1be411w7iF/?spm_id_from=333.999.0.0&vd_source=dfa9bf517c1718c832302c15f80df948 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="short icon" href="#"> <script crossorigin src="https://unpkg.com/react@18/umd/react.development.js"></script> <script crossorigin src="https://unpkg.com/react-dom@18/umd/react-dom.development.js"></script> <script src="https://unpkg.com/@babel/standalone/babel.min.js"></script> <title>Document</title> </head> <body> <div id="root"> </div> <script type="text/babel"> const root = ReactDOM.createRoot(document.getElementById("root")); // root.render(<h1>宝可梦</h1>); // const pokemons = ["皮卡丘", "杰尼龟", "小火龙"]; // 类/函数的方式写组件 class App extends React.Component { // 构造函数->渲染->组件已挂载->渲染 constructor() { console.log("构造函数"); super(); // 动态页面用state保存状态 this. ...