编写程序,利用Java实现凯撒(caesar)算法的加密和解密

1.使用说明

本程序使用eclipse Java编写。使用该程序可利用eclipse打开源代码文件夹,由于使用了有道词典API(使用时需要自己申请,修改API调用源码中的两个变量),所以在运行时需要联网,然后运行Main.java即可输出结果。可对常量明文plaintext和密钥key进行修改,重新输出。

2.运行截图

在这里插入图片描述

3.总体设计

明文可以是一个单词或者是单词间以空格为分割的句子,加密时逐个对加密的句子(单词)的字符进行加密。解密时可以用加密的函数,只不过传入的key是负数。通过暴力破解解密时,先判断该密钥所生成的明文的句子是否可以正确翻译出。这里利用有道词典API,通过观察返回的json数据的translation键值进行判断。若返回的是原字符串,则翻译失败,不符合;若符合则添加到动态数组。
之后对上面获得的符合条件的句子遍历,进行逐个查词,通过观察有道词典API返回数据的isWord和web键值判断该字符串是否是单词,如果不是则剔除该单词所在的句子。如此便得到最后的结果。

4.类及函数

  • YouDaoDictAPI.java,有道词典文本翻译API。JSONObject getResult(String q)设置调用API需要向接口发送的字段来访问服务,传入翻译的英文返回获取的JSON格式数据。
  • Encryption.java,凯撒加密算法。String caesarEncryption(String plaintext, int key)传入明文(密文)、密钥,输出密文(明文)。
  • Decryption.java,凯撒解密算法。ArrayList caesarDecryption(String ciphertext),传入密文,返回明文。
  • Main.java,凯撒加密/解密算法主函数。

5.源码

https://gitee.com/zhuhezhang/caesar-algorithm
https://github.com/zhuhezhang/caesar-algorithm

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值