密码学总结

限于喜欢 提交于 2020-01-09 23:31:15

密码学实验总结

在实验过程中,遇到了很多函数遗忘的问题,然后用了不少时间去查阅相关函数用法

在这里就简单小结一下,为以后的学习助力

单表仿射密码

  1. fill 函数

    fill(prime,prime+N,0) 将prime 数组,从0 开始 到N-1 的元素赋值为 0

  2. FILE

    C语言

    头文件为 stdio.h 文件操作的结构体FILE

    函数 **fprintf fgets fputs **

    FILE *fp;
    fp = fopen(filename,"r");//打开文件  读取方式
    
    fprintf(fp,"%s",msg);//像printf 一样用法  往文件中输出
    
    fgets(msg,50,fp);//从 fp 中读入 50-1 个字符 到msg中
    //当读取 (n-1) 个字符时,或者读取到换行符时,或者到达文件末尾时,它会停止
    
    fputs(msg,fp);//将 msg 输入到 文件fp
    
    fputc(c,fp);//将字符 输入到 fp
    
    c = fgetc(fp);//从文件 fp 读取一个字符
    

序列密码

  1. bitset

    C++

    存储时为倒叙

    比如 初始化为 bitset<8>bint(35) 对应为 00100011

    存储为 a[7] a[6] a[5] a[4] a[3] a[2] a[1] a[0] 和书上的图类似,右边为 第0位

    bitset<5>bint(16);//长度为 5 ,用16,即10000 来初始化
    
    bint.to_string();//将数据转化为 字符串
    
  2. fstream

    C++

    1. 从文件中用 file>>in 读取时,若要忽略空格 则添加 infile>>noskipws;

    2. 判断是否到达 文件末尾 while(file.peek()!=EOF)

    peek() 只是"看"了下一个字符而没有真正读取它;peek 函数返回下一个可用字符的副本,而不从流中移除它

    1. file.open("test.txt",ios::in); file.open("test.txt",ios::out);
    if(!file)
    {
        cout<<"文件打开失败"<<endl;
        return 0;
    }

    file.close();

AES密码

cout<<hex<<msg; 16进制输出

RSA密码

cin.getline() 读取一行 ;会一次读取多个字符(包括空白字符)

cout<<"请输入明文:"; 
char c = getchar();//吸收回车符
cin.getline(Plain,100,'\n');// 最多读取 100-1个字符

DSA数字签名

在使用VS时 遇到一些问题

#pragma warning(disable:4996); #define _CRT_SECURE_NO_WARNINGS;

用来忽略使用 fopen 的警告信息,不然不能运行

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!