加密主要是通过一种算法对原内容进行处理,使原来内容不直观可见。解密过程通常要知道加密的算法,然后对加密后的内容进行逆处理,从而实现解密功能。当然解密也有一些暴力破解的方法。接下来以 c 语言 为例讲解一种简单的加密解密以及暴力破解字符串的方法,带您走进加密解密技术的大门。
先讲一下凯撒加密,凯撒密码相传是古罗马凯撒大帝用来保护重要军情的加密系统。它是一种置换密码,通过将字母顺序推后起到加密作用。如字母顺序推后 3 位,字母 A 将被推作字母 D,字母 B 将被推作字母 E。本实例类似于凯撒加密。
一、对称密钥密码系统
发送方加密与解密方解密使用同一个密钥,密钥是事先双方共享的秘密。
明文 P
密文 C
密钥 K
加密算法 E:M*K->C
解密算法 D:C*K->M
所有密码全部寓于密钥
凯撒密码
明文 p
密文 C
密钥 k
加密算法 C=E( p )=( p+k )mod(26)
解密算法 p=D( C )=( C-k )mod(26)
playfair: 2字节加密(26*26表格进行单字母分析)
维吉尼亚密码: 26*26字母表(密钥循环使用,具有周期性