作者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
推 slalala:這是拿來加密?_? 08/13 23:01
→ darkflier:只是轉成bit啦要怎麼移位看自己 08/13 23:45
※ 編輯: darkflier 來自: 219.91.83.175 (08/13 23:53)
推 pinball:感謝版大提供的加密方式 只是我需要照著程式規格走 >"< 08/14 00:16
→ pinball:另外 誰可以指點一下 BOOL跟CHAT型別 指的是哪兩個型別嗎 08/14 00:17
推 pinball:darkflier大也說了他不確定語法對不對 有誰可以指點的嗎? 08/14 00:25
推 TonyQ:bool就booolean , chat應該是char打錯 08/14 07:35
推 runtime:XOR有經驗的 一看就看出來了XD 08/14 13:36
推 pinball:被抓包沒經驗 囧 =.,= 請多多包涵啦~~~ 08/15 01:20