缺陷:密码容易推敲。

package com.ruoyi.web.controller;import java.util.Scanner;public class Encryption {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.print("明文 :");String str = input.next(); // 从键盘输入字符串System.out.print("密码 K = ");int K = input.nextInt(); // 从键盘输入密码KString newStr = new String(); // 创建新字符串存储密文for (int i = 0; i < str.length(); i++) {char temp = str.charAt(i);if (temp >= 65 && temp <= 90) { //判断是否为大写字母newStr += encryptChar(temp, K, 65, 26);}else if (temp >= 97 && temp <= 122) { // 判断是否为小写字母newStr += encryptChar(temp, K, 97, 26);}else if (temp >= 48 && temp <= 57) { // 判断是否为数字newStr += encryptChar(temp, K, 48, 10);}else {newStr += temp;}}System.out.println("密文 :" + newStr);String FFF = new String();for (int i = 0; i < newStr.length(); i++) {char temp = newStr.charAt(i);if (temp >= 65 && temp <= 90) { //判断是否为大写字母FFF += jiemiChar(temp, K, 90,65, 26);}else if (temp >= 97 && temp <= 122) { // 判断是否为小写字母FFF += jiemiChar(temp, K, 122, 97,26);}else if (temp >= 48 && temp <= 57) { // 判断是否为数字FFF += jiemiChar(temp, K, 57, 48,10);}else {FFF += FFF;}}System.out.println("解密 :" + FFF);}public static char encryptChar(char ch, int key, int minAscii, int mod) {/* 根据字符ASCII码和不同的空间进行加密* ch为所需加密的字符* key为密码* minAscii用以判断空间,65为大写字母,97为小写字母,48为数字空间* mod为空间长度*/int temp = Integer.valueOf(ch);temp = (temp - minAscii + key) % mod + minAscii;return (char) temp;}public static char jiemiChar(char ch, int key, int maxAscii, int minAscii,int mod) {/* 根据字符ASCII码和不同的空间进行加密* ch为所需加密的字符* key为密码* minAscii用以判断空间,65为大写字母,97为小写字母,48为数字空间* mod为空间长度*/int temp = Integer.valueOf(ch);temp=-(maxAscii-temp+key) % mod + maxAscii;return (char) temp;}}

使用ascii码对字符串进行加密解密相关推荐

  1. python实现加密字符串_Python实现对字符串的加密解密方法示例

    本文实例讲述了Python实现对字符串的加密解密方法.分享给大家供大家参考,具体如下: 需求是是要将密码存在数据库里,所以要加密解密是可逆的,在数据库里不要有特殊字符,防止数据库备份和恢复中出错. 安 ...

  2. 把ASCII码的字符串转为数字的16进制

    /* 函数名称:AsciiStrToHexArray 功能:把ASCII码的字符串转为数字的16进制 参数dst:存储16进制数组数据指针 参数src:存储ASCII码的字符串指针 返回值:16进制的 ...

  3. ASCII码与字符串的相互转换

    为什么80%的码农都做不了架构师?>>>    #问题: 在做微信跳转的时候遇到一个问题,就是需要在回信回调页面上再加上一个自己的回调页面,以便在获得用户openid后接着跳转,结果 ...

  4. python如何加密字符串_Python实现对字符串的加密解密方法示例

    本文实例讲述了Python实现对字符串的加密解密方法.分享给大家供大家参考,具体如下: 需求是是要将密码存在数据库里,所以要加密解密是可逆的,在数据库里不要有特殊字符,防止数据库备份和恢复中出错. 安 ...

  5. php 字符ascii转中文,PHP ASCII码与字符串相互转换的方法

    PHP ASCII码与字符串相互转换的方法 PHP ASCII码与字符串如何相互转换你知道吗?你对PHP ASCII码与字符串相互转换了解吗?下面是小编为大家带来的PHP ASCII码与字符串相互转换 ...

  6. c语言 ascii码转成字符串,ASCII码与字符串的相互转换

    #问题: 在做微信跳转的时候遇到一个问题,就是需要在回信回调页面上再加上一个自己的回调页面,以便在获得用户openid后接着跳转,结果自己的页面urlencode后步行,最终微信调回来的时候我们的地址 ...

  7. java 读取ascii码_JAVA ASCII码 读入字符串测试

    JAVA ASCII码 读入字符串测试 public class RhzfYunTest { public static void main(String[] args) { int lenSize ...

  8. php 获取ascii码,PHP实现ASCII码与字符串相互转换的方法

    class ascii { /** * 将ascii码转为字符串 * @param type $str 要解码的字符串 * @param type $prefix 前缀,默认: * @return t ...

  9. 字符串转Ascii码与Ascii码转字符串

    字符串转Ascii码 private static String convert(String str) { String tmp;  StringBuffer sb = new StringBuff ...

最新文章

  1. 写在Flutter 1.0之前
  2. 还原淘宝首页最顶部的导航栏(含下拉菜单,图标等)
  3. Wormholes--POJ 3259
  4. 崛起吧,亲爱的,该背单词了!!!
  5. matlab小波分析常用函数
  6. @getmapping注解的作用_@Transactional注解失效了?你遇到的是这6种场景吧!
  7. java后端怎么返回音频流_Java语言中的IO流read()方法返回值为什么是int而不是byte?...
  8. lg函数c语言表达式,lgammal - [ C语言中文开发手册 ] - 在线原生手册 - php中文网
  9. window.open ()的用法
  10. java负载均衡搭建_负载均衡环境搭建(nginx和tomcat)
  11. android 百度地图应用
  12. P2440 木材加工
  13. 4. 利用MySQL Shell安装部署MGR集群 | 深入浅出MGR
  14. OA系统的主要功能和作用是什么
  15. 记一次replace into引发的死锁问题
  16. 长沙麻将APP(起手胡)
  17. Lamp 服务器环境安装
  18. 数据库读写分离(oracle)
  19. iPad mini Retina越狱小结
  20. 【Kubernetes 018】cfssl创建证书并结合RBAC的RoleBinding配置新用户config文件操作详解

热门文章

  1. 基于STK的高超声速飞行器可视化仿真平台研究
  2. 关键nmcli 命令
  3. ArrayBlockingQueue 迭代器
  4. tripwire_与Tripwire一起运行
  5. 如何简单快速的恢复U盘误删的文件?
  6. 测控一体化闸门 灌区智能控制闸门 渠道智能测控闸门系统解决方案
  7. 让按钮“呼吸”一会(呼吸动画)
  8. 解决分布式事务中强一致性和最终一致性的思想
  9. 百度网盘内部精简版APK下载-清爽稳定不限速下载文件
  10. VulnHub-The Ether: EvilScience (v1.0.1)渗透学习