char getkey(char txt) { char e = "dfwkekgodsfdfwkdsf"//一定位数的
字符串,比如32位 int ctr=0char tmp = ''for (int i=0i<strlen(txt)i++) { if (ctr == strlen(e)) ctr=0//瞎竖当ctr长度为上面 e 的长度时,重新置为0 tmp += substr(txt,i,i+1) ^ substr(e,ctr,ctr+1)//将 txt的第i个宽磨字符 与 e 的第 ctr个字符 异或运算 并添加入 tmp
字串中 ctr++// ctr 自增 } return tmp//返回得到的tmp字串 } char encrypt(txt) { srand((double)microtime()*1000000)//设置时间种子 char encrypt_key = md5(rand(0,32000))//磨巧大得到32为加密字串; 这里
目的就是每次运行时得到的字串都不一样 int ctr=0int tmp = ""for (int i=0i<strlen(txt)i++) { if (ctr==strlen(encrypt_key)) ctr=0tmp += substr(encrypt_key,ctr,ctr+1) . (substr(txt,i,i+1) ^ substr(encrypt_key,ctr,ctr+1))ctr++} return getkey(tmp)} char decrypt(txt) { char txt = getkey(txt)char tmp = ""for (int i=0i<strlen(txt)i++) { md5st = substr(txt,i,i+1)i++tmp += (substr(txt,i,i+1) ^ md5st)} return tmp}#include <stdio.h>
int main()
{
int 清敏a,b
scanf("%d",&a)
b=0
do
{
b=b*10+(a%10+2)%10
知正游 a/=10
}while(a)
for(a=0bb/=10)
搭销{
a=a*10+b%10
}
printf("%d\n",a)
return 0
}
评论列表(0条)