java自定义加密解密算法,该种加密如何解?

zgbwone 2018-08-01 11:43:34
package com.doit.generate;

public class Generate{

private String supplementZero(String binaryStr) {
int len = 128 - binaryStr.length();
for (int m = 0; m < len; m++) {
binaryStr = "0" + binaryStr;
}
return binaryStr;
}

private byte[] encrypt(String srcStr) {
char[] srcChar = srcStr.toCharArray();
String result = "";
for (int i = 0; i < srcChar.length; i++) {
char c = (char) (((byte) srcChar[i]) >>> 2);
c = (char) (c ^ Integer.MAX_VALUE);
c = (char) (((byte) c) << 3);
c = (char) (c ^ Integer.MIN_VALUE);
c = (char) (((byte) c) >>> 1);
c = (char) (c ^ 1025);
c = (char) (~c);
c = (char) (c ^ Integer.MAX_VALUE);
result += supplementZero(Long.toBinaryString(srcChar[i]));
}
return result.getBytes();
}
}
...全文
658 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mingyueyixi 2018-08-17
  • 打赏
  • 举报
回复
引用 10 楼 Mingyueyixi 的回复:
无法解。 自己看第一句for循环:



char c = (char) (((byte) srcChar[i]) >>> 2);



你向右位移2位,又不会产生小数点。直接铲除掉了。偶数还没问题,可以左移回来。奇数必然失真,比如7>>>2 是等于1的。1>>>2是不可能变7的,结果是4。


额。说错了,偶数只有少数情况下可以恢复回来。
Mingyueyixi 2018-08-17
  • 打赏
  • 举报
回复
无法解。 自己看第一句for循环:



char c = (char) (((byte) srcChar[i]) >>> 2);



你向右位移2位,又不会产生小数点。直接铲除掉了。偶数还没问题,可以左移回来。奇数必然失真,比如7>>>2 是等于1的。1>>>2是不可能变7的,结果是4。
zhaihuadefennu 2018-08-17
  • 打赏
  • 举报
回复
菜鸡提问,左移右移这种完全掩盖源码的加密,后面是怎么完成解密的,是先有的公式,按公式来吗。
zgbwone 2018-08-16
  • 打赏
  • 举报
回复
抱歉,那里实际上传入c,调试的时候没改回来
zgbwone 2018-08-10
  • 打赏
  • 举报
回复
哦哦,好的,我试试 谢谢
秦拿希 2018-08-10
  • 打赏
  • 举报
回复
这个c做了一大堆,有什么作用?最后直接调用的supplementZero,访问的是srcChar[i],srcChar[i]的值又没改变,上面一堆c干什么呢?
写代码的陈皮 2018-08-07
  • 打赏
  • 举报
回复
看了下,加密的很复杂,理论上,反着来是可以解的,但是就怕一些隐式变换,把精度改了.要改回来貌似很麻烦,楼主还是不要用强制类型装换,用java自带的类型装换去弄吧,这样比较安全.
wildyy 2018-08-07
  • 打赏
  • 举报
回复
你这个是解不了的,你第一句加密操作就会丢失数据。
zgbwone 2018-08-06
  • 打赏
  • 举报
回复
解了很多次,就是无法还原到加密前的字符串
zgbwone 2018-08-06
  • 打赏
  • 举报
回复
有打算要解的
tianfang 2018-08-02
  • 打赏
  • 举报
回复
最初设计的时候打算解吗?还是只要像hash一样,单向加密+比较就够

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧