这篇文章上次修改于 694 天前,可能其部分内容已经发生变化,如有疑问可询问作者。

原理是异或加密char c[] = "大家好".toCharArray();

for(int i = 0;i

c[i] = (char)(c[i] ^ 'Q');//将明文转换成密文

}

String string = new String(c, 0, c.length);

System.out.println("密文:" + string);

for(int i=0;i

c[i] = (char)(c[i] ^ 'Q');//将密文还原为明文

}

String string1 = new String(c, 0, c.length);

System.out.println("明文:" + "\n" + string1);

上面这个没有用户密钥,能直接解密,我们来升级一下import java.nio.charset.Charset;

public class DeEnCode {

private static final String key0 = "FECOI()*&

private static final Charset charset = Charset.forName("UTF-8");

private static byte[] keyBytes = key0.getBytes(charset);

public static String encode(String enc){

byte[] b = enc.getBytes(charset);

for(int i=0,size=b.length;i

for(byte keyBytes0:keyBytes){

b[i] = (byte) (b[i]^keyBytes0);

}

}

return new String(b);

}

public static String decode(String dec){

byte[] e = dec.getBytes(charset);

byte[] dee = e;

for(int i=0,size=e.length;i

for(byte keyBytes0:keyBytes){

e[i] = (byte) (dee[i]^keyBytes0);

}

}

return new String(e);

}

public static void main(String[] args) {

String s="you are right";

String enc = encode(s);

String dec = decode(enc);

System.out.println(enc);

System.out.println(dec);

}

}

现在你就可以自定义key,增加难度,但是这个还是不安全,密钥还是可能被套取,所以加入当前时间,这样每次生成的密钥都不一样

java将明文变为密文,使用java编程实现明文和密文之间的互转相关推荐

  1. java 将3变为03,03 Java序列化引发的血案

    1.前言 <手册>第 9 页 "OOP 规约" 部分有一段关于序列化的约定 [强制]当序列化类新增属性时,请不要修改 serialVersionUID 字段,以避免反序 ...

  2. 凯撒密文的破解编程实

    凯撒密文的破解编程实现 凯撒密文的破解编程实现 近来安全的发展,对密码学的研究越来越重要,虽然我们现在大多采用的是 非对称密码体制,但是同时由于处理及其它的一些重要原因,对传统密码仍然 是在大量的使用 ...

  3. 20165230 《Java程序设计》实验五《网络编程与安全》实验报告

    20165230 <Java程序设计>实验五<网络编程与安全>实验报告 一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:田坤烨 学号:20165230 成绩: ...

  4. java 网络实验_20145220 实验五 Java网络编程

    20145220 实验五 Java网络编程 实验内容 1.用书上的TCP代码,实现服务器与客户端. 2.客户端与服务器连接 3.客户端中输入明文,利用DES算法加密,DES的秘钥用RSA公钥密码中服务 ...

  5. 2018-2019-2 20175227张雪莹《Java程序设计》实验五 《网络编程与安全》

    2018-2019-2 20175227张雪莹<Java程序设计> 实验五 <网络编程与安全> 实验报告封面 课程:Java程序设计 班级:1752班 姓名:张雪莹 学号:20 ...

  6. #《JAVA程序设计》 20155214 实验五 网络编程与安全

    <JAVA程序设计> 20155214 实验五 网络编程与安全 实验内容 掌握Socket程序的编写: 掌握密码技术的使用: 设计安全传输系统. 实验要求 要求一 结对实现中缀表达式转后缀 ...

  7. java的网络编程设计报告_20165230 《Java程序设计》实验五《网络编程与安全》实验报告...

    20165230 <Java程序设计>实验五<网络编程与安全>实验报告 一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:田坤烨 学号:20165230 成绩: ...

  8. java的rsa加密算法_用java编程实现RSA加密算法

    RSA加密算法是目前应用最广泛的公钥加密算法,特别适用于通过Internet传送的数据,常用于数字签名和密钥交换.那么我今天就给大家介绍一下如何利用Java编程来实现RSA加密算法. 一.RSA加密算 ...

  9. java框架的利与弊_Java编程的利与弊

    java框架的利与弊 没有什么技术可以吹嘘保持相关性超过20年了. 但是今年,Java被评选为第五大最受欢迎的技术 ,仅被无可争议的领先者JavaScript,HTML,CSS和SQL所超越. 尽管在 ...

  10. 豆瓣评分 9.3 的 Java 巨著 | Bruce Eckel 重讲 Java 的编程思想

    硅谷创业之父 Paul Graham 曾在<黑客与画家>中写道:"判断一种语言是否流行的条件是,一种免费的实现,一本相关的书籍,以及语言所依附的计算机系统." 当然,J ...

最新文章

  1. 微软算法100题11 求二叉树中两节点之间的最大距离
  2. python制作神经网络_python_deeplearning02_使用python制作神经网络
  3. 实现网页中按钮刷新的N种方法
  4. randperm--生成随机整数排列
  5. jQuery-事件委托(基本概述+实例)
  6. java 修改商品如何实现的_Javaweb-案例练习-5-商品数量修改和合计金额实现
  7. 数据结构---KMP模式匹配病毒感染人的DNA检测
  8. 字符设备驱动高级篇5——静态映射表、动态映射结构体方式操作寄存器
  9. 局域网聊天的本质是函数
  10. MySQL入门之PHP的MySQL数据库编程
  11. 北航、商汤提出的网络二值化新算法 IR-Net,到底好使不?
  12. HTTP 遭 Google 抛弃,开发者该如何应对?
  13. LeetCode刷题——88. 合并两个有序数组
  14. test.php变成夏总,test.php
  15. 14.UNIX 环境高级编程--高级IO
  16. SNF开发平台WinForm之十四-站内发送系统信息-SNF快速开发平台3.3-Spring.Net.Framework...
  17. 硬盘服务器作用,文件服务器有什么作用?
  18. MPU6050误差分析
  19. python写txt怎么首行缩进_text-indent首行缩进两个字符和图片缩进的问题
  20. Json-Handle插件下载安装使用

热门文章

  1. html钢笔特效,JS仿Photoshop钢笔工具(贝塞尔曲线可视化操作)效果
  2. pdf转换成word后有文字叠加_pdf转成word后格式快速调整
  3. 服务器被攻击怎么处理
  4. matlab里的pid参数调节,基于MATLAB的PID控制系统参数调节
  5. 服务器 ssd虚拟内存设置,ssd虚拟内存怎么设置最好
  6. 突如其来的第一个1024要笑着过
  7. c语言的关键字母大小写表示,英语26个字母大小写标准写法
  8. 多服务台排队系统仿真基于c语言,带优先级的多服务台排队系统Monte Carlo模拟
  9. ERROR: Cannot uninstall 'xxx'. It is a distutils installed project and thus we cannot accurately
  10. 台式计算机风扇一直响,台式电脑风扇声音大怎么办(笔记本风扇一直嗡嗡响)...