| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2259 人关注过本帖
标题:大神们,加密文件求代码
只看楼主 加入收藏
computerlong
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2017-4-23
结帖率:0
收藏
 问题点数:0 回复次数:1 
大神们,加密文件求代码
【问题描述】有一种加密方法为:其使用一个字母串(可以含重复字母,字母个数不超过50)作为密钥。假定密钥单词串为feather,则先去掉密钥单词中的重复字母得到单词串feathr,然后再将字母表中的其它字母以反序追加到feathr的后面:

 f  e  a  t  h  r  z  y  x  w  v  u  s  q  p  o  n  m  l  k  j  i  g  d  c  b  


加密字母的对应关系如下:

 a  b  c  d  e  f  g  h  i  j  k  l  m  n  o  p  q  r  s  t  u  v  w  x  y  z
 f  e  a  t  h  r  z  y  x  w  v  u  s  q  p  o  n  m  l  k  j  i  g  d  c  b


其中第一行为原始英文字母,第二行为对应加密字母。其它字符不进行加密。编写一个程序,用这种密码加密文件。假定要加密的文件名为encrypt.txt及加密后的文件名为output.txt,并假定输入文件中字母全为小写字母,并且输入密钥也全为小写字母。

【输入形式】从标准输入中输入密钥串,并从文件encrypt.txt中读入要加密的内容。
【输出形式】加密后结果输出到文件output.txt中。
【样例输入】
feather
和文件encrypt.txt中内容,例如被加密的文件encrypt.txt中内容为:
c language is wonderful.
【样例输出】加密后output.txt文件中内容为:
a ufqzjfzh xl gpqthmrju.

我对于文件操作不熟悉
搜索更多相关主题的帖子: 字母表 加密 单词 
2017-04-23 19:54
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
只写了算法部分  文件部分没有写 (不是很难的)
不过main函数写的太啰嗦了  自己都感觉到
程序代码:
#include <stdio.h>

#define N 26

bool scanrep(char* s,char* cur,char des)
{
    for(;s<cur;s++)    if(*s==des) return true;
    return false;
}

int scanpos(char* s,char des)
{
    for(int i=0;*(s+i)!='\0';i++) if(*(s+i)==des) return i;
    return -1;
}

int main(int argc,char *argv[])
{
    int i;
    char base[N]={'\0'};
    for(i=0;i<N;i++) base[i]=i+'a';
    char s[N+1]={'\0'};
    char my[]="feather";
    char* ps=s;
    char* ps1=s;
    char* pmy=my;
    int c=0;
    while(*pmy!='\0')
    {
        if(!scanrep(ps1,ps,*pmy)) *(ps++)=*pmy;
        pmy++;
        c++;
    }
    char* pb=base;
    pb+=N-1;
    while(c<=N)
    {
        if(!scanrep(ps1,ps,*pb))
        {
            *(ps++)=*pb;
            c++;
        }
        pb--;
    }
    char* pdest="c language is wonderful.";
    while(*pdest!='\0')
    {
        int pos=scanpos(base,*pdest);
        if(pos!=-1) printf("%c",*(s+pos));else printf("%c",*pdest);
        pdest++;
    }
    printf("\n");
    return 0;
} 



DO IT YOURSELF !
2017-04-25 10:58
快速回复:大神们,加密文件求代码
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.059214 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved