代码来源

(60条消息) Grain加密算法_Grain-C其他资源-CSDN文库https://download.csdn.net/download/myguoguo/8723677

因代码来源是下载的,故在此不粘贴全部代码,只粘贴部分代码,希望能够得到帮助

int lfsr(int a[N]) {int temp, i;int deliv_arg;deliv_arg = a[0];//将要输出的值赋予deliv_argtemp = a[0] ^ a[13] ^ a[23] ^ a[38] ^ a[51] ^ a[62];//由运算得到新的尾值*1if (flag == 1) {  //标志temp ^= g_save;}for (i = 0; i < N - 1; i++) {//移位操作a[i] = a[i + 1];}a[N - 1] = temp;return deliv_arg;
}void nfsr(int deliv_arg, int b[N])//参数来自于线性移位寄存器
{int temp, i;temp = deliv_arg ^ b[0] ^ b[9] ^ b[14] ^ b[21] ^ b[28] ^ b[33] ^ b[37] ^ b[45] ^ b[52] ^ b[60] ^ b[62] ^ (b[63] & b[60]) ^ (b[37] & b[33]) ^ (b[15] & b[9]) ^ (b[60] & b[52] & b[45]) ^ (b[33] & b[28] & b[21]) ^ (b[63] & b[45] & b[28] & b[9]) ^ (b[60] & b[52] & b[37] & b[33]) ^ (b[63] & b[60] & b[21] & b[15]) ^ (b[63] & b[60] & b[52] & b[45] & b[37]) ^ (b[33] & b[28] & b[21] & b[15] & b[9]) ^ (b[52] & b[45] & b[37] & b[33] & b[28] & b[21]);if (flag == 1) {temp ^= g_save;}for (i = 0; i < N; i++) {b[i] = b[i + 1];}b[N - 1] = temp;
}
int bool_fun(int a[], int b[])
{int temp;temp = a[25] ^ b[63] ^ (a[3] & a[64]) ^ (a[46] & a[64])^ (a[64] & b[63]) ^ (a[3] & a[25] & a[46]) ^ (a[3] & a[46] & a[64])^ (a[3] & a[46] & b[63]) ^ (a[25] & a[46] & b[63]) ^ (a[46] & a[64] & b[63]);return temp;
}void en_decrypt(int a[], int b[], int choice)
{char filename[30];int j, deliv_arg;char data_c;int bool_c[8];//存储bool_fun的返回值FILE* fp1, * fp2;//===========================if (choice == 2)init_key(a, b);//============================if (choice == 1) {printf("enter the name of file?\n");scanf("%s", filename);if ((fp2 = fopen(filename, "rb+")) == NULL){printf("failure!");exit(0);}if ((fp1 = fopen("d:\\Users\\ASUS\\Desktop\\test1\\enc.txt", "wb+")) == NULL) {printf("failure!");exit(0);}}//============================data_c = fgetc(fp2);while (!feof(fp2)){for (j = 0; j <= 7; j++){bool_c[j] = (bool_fun(a, b) ^ output(b));//testdata_c = data_c ^ (char)(bool_c[j] << (7 - j));deliv_arg = lfsr(a);nfsr(deliv_arg, b);}fputc(data_c, fp1);//printf("%d%c",data_c);data_c = fgetc(fp2);}fclose(fp1);fclose(fp2);if (choice == 1) {printf("**加密完成!**\n");}else {printf("**解密完成!**\n");}}
int output(int x[])
{return x[1] ^ x[2] ^ x[4] ^ x[10] ^ x[31] ^ x[43] ^ x[56];
}

该算法是用来作为grain加密文件用的,但代码中输出的文件为乱码,输出结果如图

希望能够输出的结果为可见字符并且是由字母和数字组成,希望能够帮助到我。

Grain加密代码求助相关推荐

  1. PHP简单的字符串加密与加密代码

    PHP简单的字符串加密与加密代码 代码 //加密算法 function encode($string = '', $skey = 'cxphp') {$strArr = str_split(base6 ...

  2. cython加密代码python_利用Cython对python代码进行加密

    利用Cython对python代码进行加密 Cython是属于PYTHON的超集,他首先会将PYTHON代码转化成C语言代码,然后通过c编译器生成可执行文件.优势:资源丰富,适合快速开发.翻译成C后速 ...

  3. 幻方加密代码——自动生成幻方密钥方法,罗伯法单偶数阶的解法代码基于python

    前导: 罗伯法的口诀: 1.奇数阶幻方 2.双偶阶幻方 3.单偶阶幻方 自动生成幻方密钥: 前导: 幻方加密是基于罗伯法的填数自动生成阶级数阵来作为密钥,要明白幻方加密,首先就要先了解罗伯法的规律,编 ...

  4. 如何避免黑客攻击?国内首个云端加密代码库来帮忙

    近日,英伟达证实遭遇黑客攻击,核心源代码惨遭泄露,40多万个文件,75GB机密数据被公开.那么企业和个人开发者如何保护源码安全不泄漏呢? 首先,我们看下代码的不安全有哪些因素导致? 第一种,编码中自引 ...

  5. php实现pdhf2加密,搞了一天半了,可恶的加密代码解决方案

    搞了一天半了,可恶的加密代码 在网上下载了一个网站的源程序,但是其中有一段代码是加密的,用的是THINKPHP框架.服务器无需装任何特殊插件就能运行加过密的代码,有没有大侠能看出来加密的种类...或者 ...

  6. HTML的简单页面加密代码

    开发工具与关键技术:工具:DW 关键技术:HTML的简单页面加密代码 作者:刘洪杰 撰写时间:2019年1月31日 在闲置的时间里我们制作的一些网页还没有做完,却不想让别人看到,就可以在这个网页的页面 ...

  7. 页面加密代码,附效果演示

    页面加密代码,附效果演示 效果演示: <!doctype html><!--小小鱼儿小小林--><html> <head> <body>&l ...

  8. 用Electron创建第一个桌面应用、打包并加密代码

    参考教程:https://www.electronjs.org/docs/tutorial/quick-start https://www.cnblogs.com/FHC1994/p/10055698 ...

  9. 如何保护swf文件,加密代码(译)

    在我的培训课程中我常常被问到有关保护SWF影片的问题.这里有两种方法:一种是加密代码,让它难以被别人反编译和使用:另一种方法是限制SWF文件在哪些地方可用,这样别人就不能随意将你的SWF影片放在他们的 ...

最新文章

  1. 树状dp(这个人写得好多转来慢慢看)
  2. (三)WebGIS前端地图显示之根据地理范围换算出瓦片行列号的原理(核心)
  3. mysql二级索引_mysql——二级索引(辅助索引)
  4. ASP.NET之父谈ASP.NET AJAX
  5. mysql 关联关系
  6. Android7.1 Presentation双屏异显原理分析
  7. HTTP协议中返回代码302的情况
  8. 学术大数据在企业专家对接中的应用
  9. GDB中创建要素数据集
  10. 泛微oa部署linux步骤,泛微OA流程搭建操作流程
  11. python球的体积公式_鬼斧神工:求n维球的体积
  12. web服务器主机头文件,在Win2k下建立虚拟Web主机
  13. html语言单词背不下来,英语单词怎么都背不下来怎么办
  14. 扫盲:集线器、网桥、交换机、路由器、网关大解析
  15. POJ - 1625 Censored!
  16. Angular cdk 学习之 Bidirectionality(bidi)
  17. 【Linux】【开发环境】【RHEL】开发环境搭建系列之四——安装daytime服务
  18. 因子分析(factor analyis)
  19. HiveSql面试题11详解(count(1)、count(*)和count(列名)的区别)
  20. Springboot毕设项目高校教材征订系统设计与实现ig8t1(java+VUE+Mybatis+Maven+Mysql)

热门文章

  1. 手把手教你做出数据可视化项目(七)可视化图表数据动态获取及界面跳转
  2. 记:在daemon.json中添加“live-restore“: false之后,docker无法启动
  3. html做一个聊天输入框,js实现简易聊天对话框
  4. 知识图到文本的生成——叁
  5. Amazon S3文件存储的上传下载如何测试
  6. 【Android】更换头像的实现
  7. 『居善地』接口测试 — 11、接口自动化框架的设计与实现(三)
  8. 1 色相、饱和度、明度定义
  9. 论文笔记:Eye In-Painting with Exemplar Generative Adversarial Networks
  10. 用R语言分析詹姆斯的客场得分