基於字元裝置對字串進行加密解密

2021-07-12 07:52:53 字數 3199 閱讀 3699

編寫利用字元裝置實現對字串加密解密的程式。

加密:將大小寫字母迴圈加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 為保...