編寫利用字元裝置實現對字串加密解密的程式。
加密:將大小寫字母迴圈加4
解密:將大小寫字母迴圈減4
例如:"china!「加密成"glmre!」
//這是驅動**,實現乙個主裝置號,兩個次裝置。乙個次裝置號加密,乙個次裝置號解密。
//相應的測試程式是 test1.c
#include
#include
#include
#include
#include
#include
#define offset 4
#define major 200
#define size 256
module_license
("gpl");
dev_t mydev;
//存放申請的主次裝置號
struct cdev mycdev[2]
;//用於描述裝置資訊的結構體
char str[size]=;
//用於存放從使用者態傳送到記憶體態的資料
ssize_t my_write1
(struct file* pfile,
const
char __user * buff, size_t num, loff_t *f_p)
n++;}
}#endif
printk
(kern_info"write1 succeed\n");
return0;
}ssize_t my_write2
(struct file* pfile,
const
char __user * buff, size_t num, loff_t *f_p)
ssize_t my_read1
(struct file* pfile,
char __user* buff, size_t num, loff_t *f_p)
ssize_t my_read2
(struct file* pfile,
char __user* buff, size_t num, loff_t *f_p)}
n++;}
#endif
if(num>size)
//若所讀大小超出核心態儲存的大小
num=size;if(
copy_to_user
(buff,str,num)
)//若是還有從核心態未讀完的資料
return
-efault;
printk
(kern_info"read2 succeed\n");
return0;
}int
my_open
(struct inode * id,
struct file* pfile)
intmy_release
(struct inode * id,
struct file* pfile)
struct file_operations ops1=
;struct file_operations ops2=
;int __init init_module
(void
)cdev_init
(&mycdev[0]
,&ops1)
; ret =
cdev_add
(&mycdev[0]
,mydev,1)
;if(ret !=0)
cdev_init
(&mycdev[1]
,&ops2)
; ret =
cdev_add
(&mycdev[1]
,mydev+1,
1);if
(ret !=0)
printk
(kern_info" succeed\n");
return0;
}void __exit cleanup_module (
void
)
測試前,需要現在linux 的 /dev 下建立相應的驅動檔案。
mknod /dev/code_cdev1 c 200 0
mknod /dev/code_cdev2 c 200 0
由於實驗中涉及對驅動檔案的讀寫操作,所以需要更改對檔案的許可權。
sudo chmod 777 /dev/code_cdev1
sudo chmod 777 /dev/code_cdev2
#include
#include
#include
#include
#include
#include
intmain()
; fd_1 =
open
("/dev/code_cdev1"
,o_rdwr)
;//開啟相應的驅動檔案,此檔案需要自己手動提前建立
if(fd_1<0)
fd_2 =
open
("/dev/code_cdev2"
,o_rdwr);if
(fd_2<0)
printf
("please enter:");
gets
(str)
;printf
("you enter:%s\n"
,str)
;write
(fd_1,str,
strlen
(str));
read
(fd_1,str,
strlen
(str));
printf
("encode print:%s\n"
,str)
;write
(fd_2,str,
strlen
(str));
read
(fd_2,str,
strlen
(str));
printf
("uncode print:%s\n"
,str)
;close
(fd_1)
;close
(fd_2)
;return0;
}
對字串進行加密解密
create view v rand asselect c unicode cast round rand 255,0 as tinyint go create function f jmstr str varchar 8000 type bit returns varchar 8000 引數說明 ...
怎樣對字串進行加密 解密
譯者的話 該文介紹了一種直接呼叫 cryptoapi 函式對字串進行加密和解密的用法,非常簡單 實用。其中,有作者所封裝的乙個加密 解密類,是可以直接復用的原始碼,我想是能夠解決我們的一些實際問題的。而且,將初始化函式封裝在建構函式中,也顯得比較巧妙,對於初學者不失為一篇好的教材。1 初始化 cry...
使用jmeter對字串進行加密
之前介紹過如何利用jmeter函式助手構造時間戳引數,本次再來研究下另乙個功能 對字串進行加密 下面通過乙個例子來演示一下如何對請求引數進行md5加密 介面文件如下 一些說明 1 簽名是為了保證呼叫安全,使用md5演算法生成的一段字串,生成的簽名長度為 32位,簽名中的英文本元均為小寫格式 2 為保...