您当前的位置:首页 > 科普小常识 > 正文

generatekey(C语言 文件加密解密)

------------------------------------------------ 名称 描 述 例 子 ------------------------------------------------ stdin 标准输入 键盘 stdout 标准输出 屏幕 stderr 标准错误 屏幕 stdprn 标准打印机 LPT1端口 stdaux 标准串行设备 COM1端口 ------------------------------------------------ 需要注意的是,C语言提供了5种标准的流,设备(例如鼠标、键盘、磁盘、屏幕、调制解调器和打印机)的输入和输出都是用流来处理的,下面是介绍:AutoIt v3 版本, 这是一个使用类似 BASIC 脚本语言的免费软件, 它设计用于 Windows GUI(图形用户界面)中进行自动化操作. 利用模拟键盘按键, 鼠标移动和窗口/控件的组合来实现自动化任务. 而这是其它语言不可能做到或无可靠方法实现的(比如VBScript和SendKeys). AutoIt 非常小巧, 完全运行在所有windows操作系统上.(thesnow注:现在已经不再支持win 9x,微软连XP都能放弃, 何况一个win 9x支持), 并且不需要任何运行库.AutoIt 最初是为PC(个人电脑)的“批量处理“而设计, 用于对数千台PC进行(同样的)配置. 现在, autoit 是一个支持复杂表达式, 自定义函数, 循环等的强大脚本软件.E语言读内存ReadProcessMemory的问题    Dll命令名:ReadProcessMemory    所处动态链接库的文件名:kernel32.dll    在所处动态链接库中的命令名:ReadProcessMemory    参数《1》的名称为“hProcess”,所有的流均以文件的形式出现----不一定是物理磁盘文件,它们都可以重定向到磁盘文件或其它设备上,C语言 文件加密解密根据你的需要,类型为“整数型”。

C语言 文件加密解密

根据你的需要,修改了之前的代码。

#include 《stdio.h》#include 《string.h》#include 《stdlib.h》#include 《time.h》const unsigned int MAX_KEY_LENGTH = 1000;int encode(char const *datafile, char const *keyfill);int decode(char const *datafile, char const *keyfile);int loadKey(char const *keyfile, int *keys, unsigned int size);int saveKey(char const *keyfile, int *keys, unsigned int size);int generateKey(int *keys, unsigned int size);int main(int argc, char const *argv){    char datafile = “encrypted.txt“;    char keyfile = “key.txt“;    int retcode, choice, loop = 1;    char ch = {’\0’};    while(1)    {        printf(“1. Encryption.\n“);        printf(“2. Decryption.\n“);        printf(“3. Exit.\n“);        printf(“Selection (1,2,3):“);                fgets(ch, sizeof(ch), stdin);        sscanf(ch, “%d“, &choice);                switch(choice)        {            case 1:                                 retcode = encode(datafile, keyfile);                if (retcode != 0) printf(“error, %d\0“, retcode);                break;                            case 2:                                                retcode = decode(datafile, keyfile);                if (retcode != 0) printf(“error, %d\0“, retcode);                break;                            case 3:                loop = 0;                break;            default:                ;                break;            }                if (0 == loop) break;    }        return 0;}int generateKey(int *keys, unsigned int size) {    char str=“0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz,./;\“’《》?“;        size_t str_len = sizeof(str)/sizeof(str);    int i;        srand(time(NULL));    for (i = 0; i 《 size; ++i)        keys[i] = str[rand() % str_len];    return 0;}int loadKey(char const *keyfile, int *keys, unsigned int size){    int i = 0;    FILE *pfile;        int retcode = 0;    pfile = fopen(keyfile, “r“);    if (pfile == NULL) return -1;    while ( !feof(pfile) ) {        if (i 《 size)            fscanf(pfile, “%d “, &keys[i++]);        else                    break;            }    fclose(pfile);    return i;}int saveKey(char const *keyfile, int *keys, unsigned int size) {    FILE *pfile;    int i;    pfile = fopen(keyfile, “w“);    if (pfile == NULL) return -1;        for(i = 0; i 《 size; ++i) {        fprintf(pfile, “%d “, keys[i]);    }    fclose(pfile);    return 0;}int encode(char const *datafile, char const *keyfile) {    char original[MAX_KEY_LENGTH] = {’\0’};    char encrypted[MAX_KEY_LENGTH] = {’\0’};    int i, size;    int keys[MAX_KEY_LENGTH];    FILE *pdatafile, *pkeyfile;        pkeyfile = fopen(keyfile, “w“);    if (NULL == pkeyfile) return -1;    fclose(pkeyfile);        puts(“ input message:“);    gets(original);    size = strlen(original);    if (0 != generateKey(keys, size)) return -2;    if (0 != saveKey(keyfile, keys, size) ) return -3;        pdatafile = fopen(datafile, “w“);    if (NULL == pdatafile) return -4;    for (i = 0; i 《 size; ++i) {        encrypted[i] = original[i] + keys[i];        fputc(encrypted[i], pdatafile);        fputc(encrypted[i], stdout);    }    printf(“\n“);    fclose(pdatafile);    return 0;}int decode(char const *datafile, char const *keyfile){    FILE *pdatafile, *pkeyfile;    int keys[MAX_KEY_LENGTH] = {0};    char original[MAX_KEY_LENGTH] = {’\0’};    char encrypted[MAX_KEY_LENGTH] = {’\0’};    int i, size;    pkeyfile = fopen(keyfile, “r“);    if (NULL == pkeyfile) return -1;    fclose(pkeyfile);    pdatafile = fopen(datafile, “r“);    if (NULL == pdatafile) return -2;        fscanf(pdatafile,“%s“,encrypted);    fclose(pdatafile);    size = loadKey(keyfile, keys, MAX_KEY_LENGTH);    if (size 《 1) return -3;        for (i = 0; i 《 strlen(encrypted); ++i) {        original[i] = encrypted[i]-keys[i];        fputc(original[i], stdout);    }    printf(“\n“);    return 0;}

运行结果:

1. Encryption.2. Decryption.3. Exit.Selection (1,2,3):1 input message:this is A test!╓┐»╞Lñ╗ù|t▄╬╢╒è1. Encryption.2. Decryption.3. Exit.Selection (1,2,3):2this is A test!1. Encryption.2. Decryption.3. Exit.Selection (1,2,3):3

autoit用的什么语言

类BASIC 脚本语言,其实就是自己定义的语言,比较简单。下面是介绍:AutoIt v3 版本, 这是一个使用类似 BASIC 脚本语言的免费软件, 它设计用于 Windows GUI(图形用户界面)中进行自动化操作. 利用模拟键盘按键, 鼠标移动和窗口/控件的组合来实现自动化任务. 而这是其它语言不可能做到或无可靠方法实现的(比如VBScript和SendKeys). AutoIt 非常小巧, 完全运行在所有windows操作系统上.(thesnow注:现在已经不再支持win 9x,微软连XP都能放弃, 何况一个win 9x支持), 并且不需要任何运行库.AutoIt 最初是为PC(个人电脑)的“批量处理“而设计, 用于对数千台PC进行(同样的)配置. 现在, autoit 是一个支持复杂表达式, 自定义函数, 循环等的强大脚本软件.

E语言读内存ReadProcessMemory的问题

    Dll命令名:ReadProcessMemory    所处动态链接库的文件名:kernel32.dll    在所处动态链接库中的命令名:ReadProcessMemory    参数《1》的名称为“hProcess”,类型为“整数型”。注明:0。    参数《2》的名称为“lpBaseAddress”,类型为“LPCVOID”。注明:0。    参数《3》的名称为“lpBuffer”,类型为“整数型”。注明:0。    参数《4》的名称为“nSize”,类型为“整数型”。注明:0。    参数《5》的名称为“lpNumberOfBytesRead”,类型为“整数型”。注明:0。ReadProcessMemoryThe ReadProcessMemory function reads data from an area of memory in a specified process. The entire area to be read must be accessible, or the operation fails.BOOL ReadProcessMemory(  HANDLE hProcess,             // handle to the process  LPCVOID lpBaseAddress,       // base of memory area  LPVOID lpBuffer,             // data buffer  DWORD nSize,                 // number of bytes to read  LPDWORD lpNumberOfBytesRead  // number of bytes read);ParametershProcess [in] Handle to the process whose memory is being read. The handle must have PROCESS_VM_READ access to the process.lpBaseAddress [in] Pointer to the base address in the specified process from which to read. Before any data transfer occurs, the system verifies that all data in the base address and memory of the specified size is accessible for read access. If this is the case, the function proceeds; otherwise, the function fails.lpBuffer [out] Pointer to a buffer that receives the contents from the address space of the specified process.nSize [in] Specifies the requested number of bytes to read from the specified process.lpNumberOfBytesRead [out] Pointer to a variable that receives the number of bytes transferred into the specified buffer. If lpNumberOfBytesRead is NULL, the parameter is ignored.Return ValuesIf the function succeeds, the return value is nonzero.If the function fails, the return value is zero. To get extended error information, call GetLastError.The function fails if the requested read operation crosses into an area of the process that is inaccessible.RemarksReadProcessMemory copies the data in the specified address range from the address space of the specified process into the specified buffer of the current process. Any process that has a handle with PROCESS_VM_READ access can call the function. The process whose address space is read is typically, but not necessarily, being debugged.The entire area to be read must be accessible. If it is not, the function fails as noted previously.Requirements   Windows NT/2000: Requires Windows NT 3.1 or later.  Windows 95/98: Requires Windows 95 or later.  Header: Declared in Winbase.h; include Windows.h.  Library: Use Kernel32.lib.

在c语言中stream是什么函数

stream是文件流 流是程序输入或输出的一个连续的字节序列,设备(例如鼠标、键盘、磁盘、屏幕、调制解调器和打印机)的输入和输出都是用流来处理的。在C语言中,所有的流均以文件的形式出现----不一定是物理磁盘文件,还可以是对应于某个输入/输出源的逻辑文件。C语言提供了5种标准的流,你的程序在任何时候都可以使用它们,并且不必打开或关闭它们。以下列出了这5种标准的流。 ------------------------------------------------ 名称 描 述 例 子 ------------------------------------------------ stdin 标准输入 键盘 stdout 标准输出 屏幕 stderr 标准错误 屏幕 stdprn 标准打印机 LPT1端口 stdaux 标准串行设备 COM1端口 ------------------------------------------------ 需要注意的是,stdprn和stdaux并不总是预先定义好的,因为LPT1和COM1端口在某些操作系统中是没有意义的,而stdin,stdout和stderr总是预先定义好的。此外,stdin并不一定来自键盘,stdout也并不一定显示在屏幕上,它们都可以重定向到磁盘文件或其它设备上。


声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,谢谢。

上一篇: nokia8000 4g(诺基亚8000 4G能看小说吗)

下一篇: 温碧霞34岁结婚老公力排众议娶娇妻,温碧霞个人资料



推荐阅读