几种常用加密方式简要分析及建议

原始字符串:
{
    "at": "2486",
    "pwd": "96E79218965EB72C92A549DD5A330112",
    "vc": "147514",
    "v": "3.0"
}
加密算法:

AES,DES,RC4,Rabbit,TripleDes   密码:pppppxxxxxx

以AES为例:

正确的目的值:
            U2FsdGVkX19BZNXyLmcVSpM6OWxWP2V/TBm9+MICBJmwnr5RveOkF5VwMY+cdNjo
            Qb1wm3vmc4blW0VlmQIW9jnHJgHxu4PCiZIUxvb89+i/FrcZC3p/zK86eaebRlyG
            CxGEa76s1Kq5YDNlkjRDNqXpvoz5yklu9sx8PRKB9Q9HyQjwf3zn9aA4oOB6nirV
            6Wh7isYYjRLvaQ/skECthA==

逆向解密验证:
1、正确的目的值解密:正确。
2、从尾部去除一部分解密:
            U2FsdGVkX19BZNXyLmcVSpM6OWxWP2V/TBm9+MICBJmwnr5RveOkF5VwMY+cdNjo
            Qb1wm3vmc4blW0VlmQIW9jnHJgHxu4PCiZIUxvb89+i/FrcZC3p/zK86eaebRlyG
            CxGEa76s1Kq5YDNlkjRDNqXpvoz5yklu9sx8PRKB9Q9HyQjwf3zn9aA4oOB6nirV
            (去除部分:6Wh7isYYjRLvaQ/skECthA== :去除部分 )
        结果:
            {
                "at": "2486",
                "pwd": "96E79218965EB72C92A549DD5A330112",
                "vc": "147514",
                "v"
                
3、修改尾部:
        修改最后一个尾部:
            U2FsdGVkX19BZNXyLmcVSpM6OWxWP2V/TBm9+MICBJmwnr5RveOkF5VwMY+cdNjo
            Qb1wm3vmc4blW0VlmQIW9jnHJgHxu4PCiZIUxvb89+i/FrcZC3p/zK86eaebRlyG
            CxGEa76s1Kq5YDNlkjRDNqXpvoz5yklu9sx8PRKB9Q9HyQjwf3zn9aA4oOB6nirV
            (6Wh7isYYjRLvaQ/skECthA== 修改为:6Wh7isYYjRLvaQ/skECthA=X )
        结果:
            {
                "at": "2486",
                "pwd": "96E79218965EB72C92A549DD5A330112",
                "vc": "147514",
                "v": "3.0"
            }
            
        修改最后2个尾部:
            U2FsdGVkX19BZNXyLmcVSpM6OWxWP2V/TBm9+MICBJmwnr5RveOkF5VwMY+cdNjo
            Qb1wm3vmc4blW0VlmQIW9jnHJgHxu4PCiZIUxvb89+i/FrcZC3p/zK86eaebRlyG
            CxGEa76s1Kq5YDNlkjRDNqXpvoz5yklu9sx8PRKB9Q9HyQjwf3zn9aA4oOB6nirV
            (6Wh7isYYjRLvaQ/skECthA== 修改为:6Wh7isYYjRLvaQ/skECthAXX )
        结果:
            {
                "at": "2486",
                "pwd": "96E79218965EB72C92A549DD5A330112",
                "vc": "147514",
                "v
                
4、尾部增加字符:
            U2FsdGVkX19BZNXyLmcVSpM6OWxWP2V/TBm9+MICBJmwnr5RveOkF5VwMY+cdNjo
            Qb1wm3vmc4blW0VlmQIW9jnHJgHxu4PCiZIUxvb89+i/FrcZC3p/zK86eaebRlyG
            CxGEa76s1Kq5YDNlkjRDNqXpvoz5yklu9sx8PRKB9Q9HyQjwf3zn9aA4oOB6nirV
            6Wh7isYYjRLvaQ/skECthA==w11111111111
            
        结果:
            {
                "at": "2486",
                "pwd": "96E79218965EB72C92A549DD5A330112",
                "vc": "147514",
                "v": "3.0"
            }

                
5、从头部去除一部分解密:
            (去除部分:U2FsdGVkX19BZNXyLmcVSp:去除部分 )M6OWxWP2V/TBm9+MICBJmwnr5RveOkF5VwMY+cdNjo
            Qb1wm3vmc4blW0VlmQIW9jnHJgHxu4PCiZIUxvb89+i/FrcZC3p/zK86eaebRlyG
            CxGEa76s1Kq5YDNlkjRDNqXpvoz5yklu9sx8PRKB9Q9HyQjwf3zn9aA4oOB6nirV
            6Wh7isYYjRLvaQ/skECthA==
        结果:
            无
6、从中间去除一部分解密:
            U2FsdGVkX19BZNXyLmcVSpM6OWxWP2V/TBm9+MICBJmwnr5RveOkF5VwMY+cdNjo
            (去除部分:Qb1wm3vmc4blW0Vlm :去除部分 )QIW9jnHJgHxu4PCiZIUxvb89+i/FrcZC3p/zK86eaebRlyG
            CxGEa76s1Kq5YDNlkjRDNqXpvoz5yklu9sx8PRKB9Q9HyQjwf3zn9aA4oOB6nirV
            6Wh7isYYjRLvaQ/skECthA==
        结果:
            无
7、修改中间部分:
            U2FsdGVkX19BZNXyLmcVSpM6OWxWP2V/TBm9+MICBJmwnr5RveOkF5VwMY+cdNjo
            (Qb1wm3vmc4blW0Vlm :修改为:Xb1wm3vmc4blW0Vln)QIW9jnHJgHxu4PCiZIUxvb89+i/FrcZC3p/zK86eaebRlyG
            CxGEa76s1Kq5YDNlkjRDNqXpvoz5yklu9sx8PRKB9Q9HyQjwf3zn9aA4oOB6nirV
            6Wh7isYYjRLvaQ/skECthA==
        结果:
            无
        扩展:逐个还原值,只要存在修改的字符,就无法解密。
                
BASE64:
密文:
            ewogICAgImFjY291bnQiOiAiQi0wMDI0ODYiLAogICAgInBhc3N3b3JkIjogIjk2
            RTc5MjE4OTY1RUI3MkM5MkE1NDlERDVBMzMwMTEyIiwKICAgICJ2Q29kZSI6ICIx
            NDc1MTQiLAogICAgImFwcFZlcnNpb24iOiAiMy4wIgp9
            
            
密文首尾加KEY,再加密        
            XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
            ewogICAgImFjY291bnQiOiAiQi0wMDI0ODYiLAogICAgInBhc3N3b3JkIjogIjk2
            RTc5MjE4OTY1RUI3MkM5MkE1NDlERDVBMzMwMTEyIiwKICAgICJ2Q29kZSI6ICIx
            NDc1MTQiLAogICAgImFwcFZlcnNpb24iOiAiMy4wIgp9
            YYYYYYYYYYYYYYYYYYYYYYYYYYYYY
二次密文:
            CQkJWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFgKCQkJZXdvZ0lDQWdJbUZq
            WTI5MWJuUWlPaUFpUWkwd01ESTBPRFlpTEFvZ0lDQWdJbkJoYzNOM2IzSmtJam9n
            SWprMgoJCQlSVGM1TWpFNE9UWTFSVUkzTWtNNU1rRTFORGxFUkRWQk16TXdNVEV5
            SWl3S0lDQWdJQ0oyUTI5a1pTSTZJQ0l4CgkJCU5EYzFNVFFpTEFvZ0lDQWdJbUZ3
            Y0ZabGNuTnBiMjRpT2lBaU15NHdJZ3A5CgkJCVlZWVlZWVlZWVlZWVlZWVlZWVlZ
            WVlZWVlZWVlZ
            
            
            
3DES:
密码偏移量:12~!jd4232afle()9093
补码方式:PKCS5Padding
加密结果编码:16进制
结果:
8815ad9a6a5bc6987ef86434ad3bdc6c8f7ba3b7bc0a293c4e61ec92418ab4899c32151448b8929894347f473e795fa360163b87e8ae04c8325eb1a4f14b29354ac3fd980a4e3082d2741de3f927fb74cf96c906a9e92cdabc48c630b210105876c6c4c9848dcce4bb5b6507df6ec867d618297cec73c6fc723c51736565f198c3f29775b1d7ab26dc8a7201d4ca96c2a98df4d4d540c998f61c87ade9d9cd1a4c371c36ca60efbc385ebc7d9dd46500a23a5a52914b5e00fed718a98a33545c6c703eff06529b4b4d31715b8ab6c97c0f67b15f0ec4299b
    
    
    
    
加密结果编码:base64
结果:
iBWtmmpbxph++GQ0rTvcbI97o7e8Cik8TmHskkGKtImcMhUUSLiSmJQ0f0c+eV+jYBY7h+iuBMgyXrGk8UspNUrD/ZgKTjCC0nQd4/kn+3TPlskGqeks2rxIxjCyEBBYdsbEyYSNzOS7W2UH327IZ9YYKXzsc8b8cjxRc2Vl8ZjD8pd1sderJtyKcgHUypbCqY301NVAyZj2HIet6dnNGkw3HDbKYO+8OF68fZ3UZQCiOlpSkUteAP7XGKmKM1RcbHA+/wZSm0tNMXFbirbJfA9nsV8OxCmb



验证:
1、首字母变更:
(i 变更后的字符为:o)BWtmmpbxph++GQ0rTvcbI97o7e8Cik8TmHskkGKtImcMhUUSLiSmJQ0f0c+eV+jYBY7h+iuBMgyXrGk8UspNUrD/ZgKTjCC0nQd4/kn+3TPlskGqeks2rxIxjCyEBBYdsbEyYSNzOS7W2UH327IZ9YYKXzsc8b8cjxRc2Vl8ZjD8pd1sderJtyKcgHUypbCqY301NVAyZj2HIet6dnNGkw3HDbKYO+8OF68fZ3UZQCiOlpSkUteAP7XGKmKM1RcbHA+/wZSm0tNMXFbirbJfA9nsV8OxCmb
    解密:
         D�d����Yuot;a": "2486",
        "pwd": "96E79218965EB72C92A549DD5A330112",
        "vc": "147514",
        "v": "3.0"
        }
2、首字母变更:
(iB 变更后的字符为:oo)BWtmmpbxph++GQ0rTvcbI97o7e8Cik8TmHskkGKtImcMhUUSLiSmJQ0f0c+eV+jYBY7h+iuBMgyXrGk8UspNUrD/ZgKTjCC0nQd4/kn+3TPlskGqeks2rxIxjCyEBBYdsbEyYSNzOS7W2UH327IZ9YYKXzsc8b8cjxRc2Vl8ZjD8pd1sderJtyKcgHUypbCqY301NVAyZj2HIet6dnNGkw3HDbKYO+8OF68fZ3UZQCiOlpSkUteAP7XGKmKM1RcbHA+/wZSm0tNMXFbirbJfA9nsV8OxCmb
    解密:
         &�]�M0[�ot;a": "2486",
        "pwd": "96E79218965EB72C92A549DD5A330112",
        "vc": "147514",
        "v": "3.0"
        }
3、更改前部的一个字符:
iBW(t 变更后的字符为:o)mmpbxph++GQ0rTvcbI97o7e8Cik8TmHskkGKtImcMhUUSLiSmJQ0f0c+eV+jYBY7h+iuBMgyXrGk8UspNUrD/ZgKTjCC0nQd4/kn+3TPlskGqeks2rxIxjCyEBBYdsbEyYSNzOS7W2UH327IZ9YYKXzsc8b8cjxRc2Vl8ZjD8pd1sderJtyKcgHUypbCqY301NVAyZj2HIet6dnNGkw3HDbKYO+8OF68fZ3UZQCiOlpSkUteAP7XGKmKM1RcbHA+/wZSm0tNMXFbirbJfA9nsV8OxCmb
    解密:
         [zt�۲k�qujt;a": "2486",
        "pwd": "96E79218965EB72C92A549DD5A330112",
        "vc": "147514",
        "v": "3.0"
        }
    总字符数量不变的情况下,更改字符后,其他未更改部分仍然可以解析出内容。
4、无论多一个还是少一个字符,均无法解析
        
        
        
        
        
        
        
总结密文分析:
1、一层的加密中,AES,DES,RC4,Rabbit,TripleDes 算法中对密文后部的增减和更改 均可以正确的解析未变动部分。但是DES和TripleDes 两种加密算法 尾部命令的变更将会影响更多正确部分的内容值。对前部分的变更都将取不到值。
2、一层加密算法3DES 对密文内容的更改,未做更改部分仍然可以解析出内容,当对整个字符串长度来说多或者少字符的时候,均无法解析。


解决方案:
1、做两次加密;
2、使用非对称方式;
3、加密规则中增加可破解端的密码串叠加,例如:AES,DES,RC4,Rabbit,TripleDes 算法中对密文后部的增减和更改 均可以正确的解析未变动部分,那么AES密文前部分在叠加随机和约定要的其他AES密文的后部分。
4、对公钥进行排序和规则算法;
5、增加时间戳。

你可能感兴趣的:(java,web)