DES原理 这里不予以复述, 有很多优秀的博客 原理可以参考这篇博客 https://www.cnblogs.com/songwenlong/p/5944139.html
DES有各种置换矩阵的定义, 所以提前定义好, 但是这里虽然说是矩阵 但是使用数组来表示的
对于置换 我们的明文是用一个长度为64的字符01串构成的 所以置换 只需要新的字符串 然后按照置换矩阵的下表来把原字符串的单个字符加入
对输入的str 按照shift_count的大小 左移shift_count位 这个函数主要用于子密钥生成
此函数用来生成子密钥 生成16组子密钥 用于和扩展分组 异或
最后,P盒置换的结果与最初的64位分组左半部分L0异或,然后左、右半部分交换,接着开始另一轮。
末置换是初始置换的逆过程,DES最后一轮后,左、右两半部分并未进行交换,而是两部分合并形成一个分组做为末置换的输入 置换后得到密文或者解密的明文