檔案字串加密解密的最簡單的方法

2021-10-07 00:14:24 字數 1027 閱讀 2868

在程式設計中,無論是**、參數列、還是,除了那些開源的專案之外,

大都不希望別人能輕易看懂並識別。因此,對檔案進行加密和解密就是乙個重要的工作了。(字串同理)

看似挺複雜的,其實,想要簡單也可以。

複雜的如base64演算法的加密解密、encryptjs演算法等,都會加大檔案size。

而最簡單的,莫過於直接將檔案用二進位制(byte)異或或者反向處理,而檔案大小不變!!。

處理基礎:將原檔案用二進位制讀取,存成byte陣列

一:反向儲存思路

將byte陣列反序,再寫入檔案。

比如:」123456abcd」,存成:dcba654321,

如果檔案中帶有漢字,那麼反序後,就會變成不可識別的字元,更不好識別了

這種方法的弊端在於,如果文字檔案大部分是普通的字母數字,那麼反序後很容易看出來是反轉的。

二:單一加法處理

將byte陣列的每個位元組,都加上乙個 數a,如果得數大於255,就減去256。

比如:「123456abcd」,加上32的話,就變成:」qrstuv*****」

三:金鑰加法處理

設定金鑰為 key = 「abcdedg」

將byte陣列的每個位元組,按順序分別加上key的值,那麼就更不容易被看出來了。

解密方法:

把加密演算法反處理,就可以了。

特別記事:

1、lua 的將byte轉成string 的方法,可以直接 用 string.sub(unpack(bytelist)) 就可以,

但是unpack的最多引數在8000左右,所以,bytelist的長度不能超過8000,

我們可以在n = 5000左右截斷,當然,要注意,如果第n個位元組是漢字位元組,那麼就要再取3個位元組才能正式截斷,

否則你的字元就亂碼了。

2、cocos2dx的部分版本stringutils::format的最大位元組數是1024*100,即100k,超過部分將被丟棄

因此,如果我們的檔案長度超過100k,就需要自己寫字串格式化方法(參照stringutils::format,改造一下就可以)

HTML JS 字串的簡單加密與解密

用escape與unescape進行編碼與解碼字串,例如 你好 加密後變為 u4f60 u597d 看不懂吧,如果是加密js的話,執行時可以解密後使用eval函式執行。加密函式 function compile code return escape c 解密函式 function uncompile...

字串加密解密

using system.security.cryptography using system.io 加密函式 static stirng encrypt string str descryptoserviceprovider descsp new descryptoserviceprovider ...

解密XenoCode加密的字串

很多 net 程式發行時會使用混淆器進行保護,其中 xenocode 2005 應該說是使用比較多的乙個。xenocode會使用乙個插入的類對程式集中的字串進行保護。本文將結合 reflector 和反射技術解密程式集中被加密的字串。首先,我們使用 reflector 對原程式進行 disassem...