问题标题: 代码加密器,防止屏蔽词~ 【完美支持中文】

0
0
已解决
薛乘志
薛乘志
初级启示者
初级启示者

使用:加密工具请从控制台输入代码,并在最后一行输入 :end 结束输入,结果文件输出至output.txt文件

解密工具请从input.txt输入加密代码,输出结果显示在控制台内 注意:解密时输入文件编码必须为ANSI,否则无法保证支持中文(可以直接改名加密工具的输出文件)!

(XACRAFT3.0加密文件)

 

加密:

#include<bits/stdc++.h>
#include<conio.h>
#include<openssl/sha.h>
using name** std;
void BASE2(st**ng s){
    for(int i=0;i<s.size();i++){
		int k=s[i];
		if(k>=128||k<=0){
			cout<<s[i]<<s[i+1];
			i++;
		}else while(k!=0){
			p**ntf("%d",k%9);
			k/=9;
		}
		p**ntf("X");
	}
}
int main(){
	freopen("output.txt","w",stdout);
	**("title 代码加密工具");
    st**ng x="";
    while(1){
		st**ng l;
		getline(cin,l);
		if(l==":end") break;
		x=x+l+'\n';
	}
    BASE2(x);
    ret**n 0;
}

解密:

#include<bits/stdc++.h>
#include<conio.h>
#include<openssl/sha.h>
using name** std;
void BASE16(st**ng s){
	int sum=0,l=0;
    for(int i=0;i<s.size();i++){
    	if(s[i]>=128||s[i]<=0){
    		cout<<s[i]<<s[i+1];
			i++;
			continue;
    	}
    	if(s[i]=='X'){
			cout<<char(sum);
			l=0;
			sum=0;
			continue;
		}
		sum+=(s[i]-'0')*pow(9,l);
		l++;
	}
}
int main(){
	freopen("input.txt","r",stdin);
	**("title 代码解密工具");
    st**ng x;
    cout<<"加载你的加密代码:\n";
    getline(cin,x);
	cout<<"\n解密结果:\n";
    BASE16(x);
    ret**n 0;
}

 

薛乘志在2021-08-05 16:09:23追加了内容

抱歉,前面 (XACRAFT3.0)处原是图片,但是问答bug导致图片无法显示

薛乘志在2021-08-05 16:13:33追加了内容

由于问答屏蔽词感人,本帖已被感染

故提供下载地址

解密

加密

上文提到的XACRAFT3.0加密结果不提供下载

薛乘志在2021-08-05 16:19:29追加了内容

如果出现#include<openssl/sha.h>错误,可以删除

(头文件除了bits/stdc++.h均可删除)

 

薛乘志在2021-08-05 16:21:16追加了内容

Devc++5.11 似乎不支持#include<openssl/sha.h>


1
已采纳
沙宸安
沙宸安
高级启示者
高级启示者

糟 糕 ! 薛 氏 加 密 也 防 不 住 了 ! 
不 信 大 家 发 一 下 阿 拉 伯 数 字 6 4 试 试 看 。 
注 : 这 个 自 动 打 空 格 是 我 研 究 出 来 的 玩 意 , 只 不 过 是 用 于 文 字 防 星 号 的 。 

沙宸安在2021-08-05 23:01:41追加了内容

6 4:我究竟做错了什么?

0
0
0
0
0
王文博
王文博
缔造者之神
缔造者之神

代码中有**,建议放到洛谷云剪切板中

0
丁博扬
丁博扬
中级天翼
中级天翼

.......

最近这个问题在酷町问答里火了

无语中......

0
王子睿
王子睿
初级守护
初级守护

其实可以用高级伪代码的。。。

 

我要回答