C语言VC++6.0实现一个置换加密

C语言VC++6.0实现一个置换加密,第1张

这个应该满足要求:

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

FILE *fi,*fo

char ps[20],txt1[1024],txt2[1024]

int plen,ps1[20]

int i,j,k

void main(){

printf("password? ")

scanf("%s",ps)

plen=strlen(ps)

printf("PASSWORD is %s in length of %d, separated into:\n",ps,plen)

for(i=0i<pleni++){ps1[i]=ps[i]-48printf("%3d",ps1[i])}

fi=fopen("d:\\肆陆datin.txt","ra")

if(fi==NULL)exit(111)

fscanf(fi,"%s\n",txt1)

fclose(fi)

printf("\n\n---TEXT in file d:\\datin.txt before encoding : ---\n%s\n",txt1)

fo=fopen("d:\\datout.txt","wa")

if(fo==NULL)exit(222)

for(j=0j<strlen(txt1)j++){

for(i=0i<pleni++)fprintf(fo,"%c",txt1[ps1[i]-1+j])

j+=plen-1

}

fclose(fo)

fi=fopen("d:\\datout.txt","ra")

fscanf(fi,"%s\n",txt2)

fclose(fi)

printf("\n---TEXT in file d:\\枣陆datout.txt after encoding : ---\n%s",txt2)

printf("\n")

}

/凳雹顷/ contents in datin.txt:

// abcdefghijklmnopqrstuvwxyz1234567890

给你,拆态自己再稍微改造一下吧:

#include "stdio.h"

#include "conio.h"

main()

{

int k,i=0

char a[100],b[100]

printf("qing shu ru ni de mi wen \n"旅派源)

gets(a)

printf("qing shu ru mi shi \n")

scanf("羡袜%d",&k)

printf("\n")

do{

b[i]=(char)(a[i]+k)

if(b[i]>122){

b[i]=(char)(b[i]-26)

}

i++

}while(a[i]!='\0')

puts(b)

getch()

}

我大概明白你的意思了,你是说425613是个密文码。你在软件里面设个密码库,1代表度,2代表起,3代表吧,4代表一,5代表去,6代表百。这样子,你选择转换成数字

然后你打了几个字:一起去百度吧。点击生成密文,然后就会生成425613,别人拿到这个数字不知道意思。但你只要通过你的软件,就耐并稿又可以把他还原成一起去百度吧的文字了,是这个意思吧?

这个挺有意思的,不过我也没有现成的代码昌孝。但你可以这样试试,先用一个变量把汉字常用字搞进去存为变量,比如有3000个。然后另外做个小程序(这个程序只使用1次),目的是用随机不重复方式(或许可以用气泡法)生成1-3000随机不重复数字存到数组当中,并把这个数组再次输出到变量中保存,因为数字很多,最好在每个数字之间用逗号或减号之类的格开,以便将来好查找定位。

这样就生成了随机数字代码库。然后你打入一段文字(例如:百度),实际运行时,把这段文字用for循环加mid方式,逐一用instr函数到你的汉字库,找到这个汉字在汉字库中的位置,位置即数字。例如百度的百字instr如果返回130,就代表这个字在你汉字库中的第130个字的位置,那么你就找你的随机数变量库中第130个随机数变量是多少,例如当时生成的是213-1888-1-99-22.............1381 到第130是1381,那么百字的代码就是1381。

这样就生成了1381-128(百度),别人拿到的是1381-128,他不知道代码什么。

将来你想转换成字时,就与上面作相反的 *** 作,即可将1381对应的汉字反推回来。

这个办法也许蔽棚算法很差,也很笨,不过我只能这样帮你了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8180260.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存