alisp檔案加密測試.lsp
(2012-02-26 17:02:35)
標籤:四柱液壓機三娛樂
alisp檔案加密測試.lsp
autocad雖然沒有提供加密、解密autolisp的工具軟體,但其本身卻可以接收兩種格式的lisp檔案.一種是保護格式的;另一種是文字格式的.讀入檔案後,autocad首先會作出判斷,一旦確定檔案是保護格式的,則在載入該程式前,自動將加密檔案**予以還原,然後再讀入命令直譯器.下面我們來看看autolisp保護格式檔案的格式.起始位址及終止位址(bytes)
功能 0-29 保護檔案的標識字串計30bytes,為"autocad protected
lisp file\0x0d\0x0a\0x1a". 30 密碼字元,只有乙個位元組. 31及以後
已加密的程式碼.注意:前30個位元組使用者不得改動; 第30位是密碼字母,龍門液壓機,使用者可以任意給定,譬如字母'a';
第31位起可由附錄程式經過加密計算後寫入檔案.**加密與解密的原理**
加密與解密的乙個重要工具是"按位異或(^)運算".其作用是判斷兩運算量相應位的值是否"相異",若為異,則為1,否則為0.即:0^0=0;0^1=1;1^0=1;1^1=0.因其具有雙向轉換、還原的能力,四柱三梁,故在密碼學上得到廣泛應用.讓我們來看看:
a|01000001 8|00111000 ^y|01111001 ^a|01000001 8|00111000
y|01111001上式中0x41='a'、0x79='y'、0x38='8',
'a'^'y'='8';'8'^'a'='y';'y'^'8'='a'. 可以看出按位異或運算具有雙向轉換、還原的能力.
autocad在加密、解密時,除了運用上述方法外,四柱液壓機,另外還使用了乙個技巧,就是移位運算,
將被轉換字元的8個位全部左移一位,相當於將該整數乘以2,若最高位是1(移位後》256),
則將溢位位1移至最末位,否則用0代替末位,這樣就保證了加密碼與原**一一對應.我們假設用函式f表示這一運算過程.----字元0x96,二進位制為10010110,則f(0x96)=f(10010110)=00101101=0x2d.----我們用下面兩個算式,三梁四柱油壓機,來說明加密、解密的具體過程,式中各符號的意義:a0->b=a^b;a-b=f(a)^b;a/b=f(a)^b;各字元均以16進製表示,假設密碼字母是'a'(0x41).原始程式碼為:(princ)加密過程如下:----(princ)
-> 28 70 72 69 6e 63 29 具體過程為: 1、0x41^0x28=0x69;
(按位異或) 2、f(0x69)=0xd2; (移位運算) 3、0xd2^0x70=0xa2; (按位異或)
2、f(0xa2)=0x45; (移位運算) 3、0x45^0x72=0x37;結果(69 a2 37 07 60 a3
6e)解密過程如下:----41->
69-a2-37-76-0a-36-ed-hh(依次類推)----287072696e6329結果(princ)具體過程為:1、0x41^0x69=0x28;(字元'(')2、f(0x69)=0xd2;3、0xd2^0xa2=0x70;(字元'p')hh|功能:定義函式,實現
左移一位操作;|;;測試:(setq lst (vl-string->list
"(princ)lst 65)|;(defun f+ (int / tmp) ;;先轉換成二進位制
(setq tmp (deg->bin int)) ;;補齊為 8 位(while
(< (strlen tmp) 8) (setq tmp (strcat
"0" tmp)) ) ;;將首位移動到末位 (setq tmp
(strcat (substr tmp 2 7) (substr tmp 1 1))) ;;返回
(bin->deg tmp)功能:仿autolisp加密文字(defun ++++ (lst
keysci / lst1 n tmp) (setq lst1 foreach n lst (progn 異或操作 (setq tmp
(boole 6 keysci n)) (setq lst1 (cons tmp lst1)計算下乙個 密匙 (setq keysci
(f+ tmp)返回 ;;(vl-list->string (reverse lst1))
(reverse lst1)解密;;; (defun ---- (lst keysci / lst1 n tmp) (setq
lst1 foreach n lst (progn 異或操作 (setq tmp (boole 6 keysci n)) (setq
lst1 (cons tmp lst1)計算下乙個 秘匙 (setq keysci (f+ n)返回
;;(vl-list->string (reverse lst1)) (reverse
lst1)defun c:tt1 (/ str lst ff n) ;; (setq str
"(princ
\"ok\")") (setq
lst (vl-string->list str)) (setq lst (++++ lst 65))
;;寫入檔案 (setq ff (open
"d:\\test\\test.txt"
"w")) (foreach n lst (write-char
n ff) ) (close ff) (princ)defun c:tt2 (/ lst ff tmp n) (setq lst
'()) ;;讀檔案 (setq ff (open
"d:\\test\\test.txt"
"r")) (while (setq tmp (read-char
ff)) (setq lst (cons tmp lst)) ) (close ff) ;; (setq lst (----
(reverse lst) 65)) (princ (vl-list->string lst))
(princ)加入檔案頭(defun c:tt3 (/ lst ff tmp n i) (setq lst '()) ;;讀檔案
(setq ff (open
"d:\\test\\test.txt"
"r")) (while (setq tmp (read-char
ff)) (setq lst (cons tmp lst)) ) (close ff) ;;寫入檔案 (if (setq ff
(open "d:\\test\\test.lsp"
"w")) (progn ;;寫入檔案頭 (foreach n
(vl-string->list "autocad protected
lisp file") (write-char n ff) ) (write-char 13 ff)
(write-char 10 ff) (write-char 26 ff) ;;寫入 (write-char 65 ff)
;;寫入檔案內容 (setq str "(alert
\"測試成功\")(princ
\"ok\")") (setq
lst (vl-string->list str)) (setq lst (++++ lst 65))
(foreach n lst (write-char n
ff)princ)十進位制轉化為二進位制;;;例如:(deg->bin 3)
返回"11";;;
(deg->bin 5)
返回"101"(defun
deg->bin (int / a b) (if (< int 1)
"0" (if (= int 1)
"1" (progn (setq a (/ int 2) b (-
int (* a 2)) ) (strcat (deg->bin a) (itoa
b)二進位制轉化為十進位制;;;例如:(bin->deg
"11") 返回 3;;;
(deg->bin "101")
返回 5(defun bin->deg (str) (if (<=
(strlen str) 1) (if (= str "1") 1
0 ) (if (= (substr str 1 1) "1")
(+ (expt 2 (- (strlen str) 1)) (bin->deg (substr str
2)) ) (bin->deg (substr str 2)) ) ))
分享:載入中,請稍候......
登入名: 密碼: 找回密碼 註冊記住登入狀態
暱 稱:
Unity中實現檔案加密
常用的檔案加密演算法有 des aes rsa sha 1 md5.net自帶了安全類庫,在system.security.cryptography下有一些常用的加密演算法 其中md5屬於摘要演算法,多用於檢查檔案是否有修改 對稱加密 對稱加密演算法有aes des 3des等 在對稱加密演算法中,...
加密解密中的 pfx檔案
加密解密中的 pfx檔案 kcs 12 擴充套件名為 p12 或者 pfx then what is pkcs pkcs public key cryptography standards 公鑰加密標準 既然是標準肯定有制定者。pkcs 的制定者是 rsa資訊保安公司 pkcs 是一套公鑰加密標準。...
shadow檔案中密碼的加密方式
1 檢視shadow檔案的內容 cat etc shadow 可以得到shadow檔案的內容,限於篇幅,我們舉例說明 root 1 bg1h 4mz x89tqh7tpi9dx1b9j5ysf.14838 0 99999 7 其格式為 注 shadow檔案為可讀檔案,普通使用者沒有讀寫許可權,超級使...