C-这能算是一个加密程序吗?

发布于 2017-01-16 00:26:38 字数 2019 浏览 1182 评论 4

把一个文件的内容读入内存,然后把每个字节取反,再写入文件,"解密"的过程跟"加密"一样。能算加密吗?
code:

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <assert.h>
#include <string.h>
#include <stddef.h>

static void encryption_or_decipher(int fd, int wfd);

int main(int argc, const char *argv[])
{
if(argc != 2){
printf("usage:app filenamen");
return -1;
}

char newName[512];
bzero(newName,sizeof(newName));
sprintf(newName,"encry_%s",argv[1]);

int rfd = open(argv[1], O_RDWR, S_IWUSR|S_IRUSR);
assert(rfd != -1);
int wfd = open(newName, O_RDWR|O_CREAT, S_IRUSR|S_IWUSR);
assert(wfd != -1);

encryption_or_decipher(rfd, wfd);

close(rfd);
close(wfd);
return 0;
}

#define BUF_SIZE (8129)

static void
encryption_or_decipher(int rfd, int wfd){
size_t msize = BUF_SIZE;
char *buf = malloc(msize);
assert(buf);
bzero(buf,msize);

char *bufp = buf;
size_t nread = 0, rtime = 0;
while((nread = read(rfd, bufp, BUF_SIZE)) == BUF_SIZE){
msize += BUF_SIZE;
buf = realloc(buf, msize);
assert(buf);
bufp = buf + ((++rtime)*BUF_SIZE);
bzero(bufp,BUF_SIZE);
}
if(nread < 0){
printf("Call read() failed!n");
exit(EXIT_FAILURE);
}else if(nread < BUF_SIZE)
msize = msize - (BUF_SIZE - nread);
else if(nread == BUF_SIZE)
msize -= BUF_SIZE;

bufp = buf;
for(int i = 0; i < msize; i++){
*bufp = ~(*bufp);
bufp++;
}

int wn;
while((wn = write(wfd, buf, msize)) < msize){
buf += wn;
msize -= wn;
}

free(buf);
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

偏爱自由 2017-08-01 01:04:24

加密,是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已加密的信息,但因不知解密的方法,仍然无法了解信息的内容。[来自百度百科‘加密’]
所以你这个一样算做加密,只是在平时,我们为了信息的安全不会做的这么简单而已

想挽留 2017-06-12 01:53:18

看你怎么理解加密了,不过这样的算法太容易破解了。猜几下就出来了。

瑾兮 2017-06-10 15:05:21

广义上来说,只要进行文件的更改就算加密(不能解也是加密),但是实际的应用性和效果如何就无法保证了。

浮生未歇 2017-04-15 07:35:06

以密码学的角度去看,已经算是加密了,毕竟摆明了这就已经是密文了。
当然,你也可以再加入比如栅栏密码凯撒密码等一些简单的密码,几种密码叠加使用,嗯嗯,一般够吃一壶了。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文