作者darkflier (我不要变小胖Orz)
看板java
标题Re: [J2SE] JAVA有没有办法做 circular shift left
时间Wed Aug 13 22:39:02 2008
如果只是单纯的加密应该不用那麽复杂吧
最懒惰的就是XOR
以下很久没用过java了所以与法可能有错请见谅
你提及的bit 移位
个人提供一个想法给你参考
满鸟的就是XDD
bool bTest[8];
chat cTest='7';
for(int i=0;i<8;++i)
bTest=cTest&(1<<i);
这样就能够取出所有的bit了
然後看你要怎麽去移位就看自己搂
加密方法有很多我觉得这样加密解密好像不是很有效啦XD
懒人用的XOR方法
大概就是 X XOR Y
然後解密在用同样的方法一次即可
例如 100100 XOR 010101 = 110001
110001 XOR 010101 = 100100
不过真的要加密方法有很多啦只是我不喜欢加密就是
在提供一个很无聊的加密方法
TYPE X = Y;
TYPE Z[2];
Z[0] = X.GetLeftSideValue(); //参考上面取出Bit方式
Z[1] = X.GetRightSideValue(); //参考上面取出Bit方式
然後写入Z代替写入X
我个人比较讨厌用什麽神奇的数学方式加密解密啦
比较喜欢用无厘头方式加解密XD
※ 引述《pinball (飞肥匪狒)》之铭言:
: ※ 引述《adrianshum (Alien)》之铭言:
: : 无需做什麽字元转换 ascii 码
: : 一个 char 本身就是一个 16 bit integer
: : 直接做各类整数操作就行了
: : alien
: 抱歉 可能我的观念不太对 所以有些不太理解您的回答 请原谅我还是个嫩手 >"<
: 我还是详细的说明我要做的事情好了
: 假设今天我要在字串中做一些动作 来加密这个字串
: 我需要将每个字元都做数次的circular shift
: 假设某字元为A 我需要先获得他的8个bit的birnary code 也就是 01000001 (也就是65)
: 如果该字元需要被做两次circular shift 则目标值为 00000101 (也就是5)
: 但是因为现在找不到直接做circular shift的function
: 所以势必要将该字元转为 一个BYTE的型态 然後再将其binary code修改成我要的东西
: 现在我的问题在於 该如何把字元转成binary code 并且在做完shift的动作之後
: 要怎麽再把binary code 转回其对应的字元(例如说 00000101对应到某个字元或符号)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 219.91.83.175
1F:推 slalala:这是拿来加密?_? 08/13 23:01
2F:→ darkflier:只是转成bit啦要怎麽移位看自己 08/13 23:45
※ 编辑: darkflier 来自: 219.91.83.175 (08/13 23:53)
3F:推 pinball:感谢版大提供的加密方式 只是我需要照着程式规格走 >"< 08/14 00:16
4F:→ pinball:另外 谁可以指点一下 BOOL跟CHAT型别 指的是哪两个型别吗 08/14 00:17
5F:推 pinball:darkflier大也说了他不确定语法对不对 有谁可以指点的吗? 08/14 00:25
6F:推 TonyQ:bool就booolean , chat应该是char打错 08/14 07:35
7F:推 runtime:XOR有经验的 一看就看出来了XD 08/14 13:36
8F:推 pinball:被抓包没经验 囧 =.,= 请多多包涵啦~~~ 08/15 01:20