密码学和Java加密与解密技术

本文深入探讨了密码学的历史,从古典的替换法和移位法到现代密码学的ASCII编码、Unicode、位运算、对称加密(AES、DES)和非对称加密(RSA、DSA)。通过Java代码实例解析了ASCII编码、URL编码、Base64编码、MD5、SHA-1等常见编码和散列算法,以及加密解密过程。
摘要由CSDN通过智能技术生成

密码学大概像中国的历史发展一样,可分为古典密码学、近代密码学、现代密码学。

一、古典密码学

古典密码主要是替换密码和移位密码。核心原理也就是替换法、移位法。

替换法

替换法也有两种,单表替换和多表替换。
单表替换即原文和密文用的同一张表
如表:j替换u,a替换q,v替换为f
所以明文java替换后变密文uqfq。
也有多表替换,即原文和密文用的是多张表
如:表 abcdef---swtrpv、abcdef---chfhkd、abcdef---jftoud
秘钥为 312
表示分别替换第三张表、第一张表、第二张表
则明文的abc替换后为密文sht。

移位法

移位法就是将原文所有字母在字母表上按照一个固定数组进行前后移位,得出密文。
如:明文abcde变为密文cdefg,就是在字母表里每个字母分别往后移动两位。
典型的移位法应用有"恺撒加密"。

java 代码实现"恺撒加密"

package javaweb.com.demo;

public class Encryption {
    public static void main(String[] args) throws Exception {
        String a = "cseroad";
        int key = 3;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wespten

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值