#define BufLength 100
void Encrypted_Decrypt(char* filepath, char* sec, int seclegth)
{
FILE * file = fopen(filepath, "r+")
if (NULL == file)
{
std::cout <<"打开文件出错" <<std::endl
return
}
char buffer[BufLength]
char secret[BufLength]
int n = 0
while ((n = fread(buffer, 1, BufLength, file))>0)
{
for (int i = 0i <ni++)
secret[i] = buffer[i] ^ sec[i % (seclegth + 1)]//加密
fseek(file, -n, SEEK_CUR)//移动字符串头在文件中的位置
fwrite(secret, 1, n, file)//覆盖写入秘文
fseek(file, n, SEEK_CUR)//移动字符串尾在文件中的位置,下次循环读取下一串
}
fclose(file)
}
int main()
{
std::cout <<"输入密码:"
char psw[256]
std::cin >>psw
std::cout <<"加密或者解密文件(全路径如d:/1.txt):"
char filepath[256]
std::cin >>filepath
Encrypted_Decrypt(filepath, psw, strlen(psw))
return 0
}
import java.io.*public class SecretExample {
public static void main(String[] args) {
File fileOne=new File("d:/hello.txt"),fileTwo=new File("d:/hello.secrect")
char b[]=new char[100]
try
{
FileReader in= new FileReader(fileOne)
FileWriter out=new FileWriter(fileTwo)
int n=-1
while((n=in.read(b))!=-1)
{
for(int i=0i<ni++)
{
b[i]=(char)(b[i]^'a')
}
out.write(b)
//写入文件
}
out.close() //关闭out
in=new FileReader(fileTwo)
System.out.println("加密后的文件内容:")
while((n=in.read(b))!=-1)
{
String str=new String(b,0,n)
System.out.println(str)
}
in=new FileReader(fileTwo)
System.out.println("解密后的文件内容:")
while((n=in.read(b))!=-1)
{
for(int i=0i<ni++)
{
b[i]=(char)(b[i]^'a')
}
System.out.printf(new String(b,0,n))
}
in.close() //关闭in
}
catch(IOException e)
{
System.out.println(e)
}
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)