A. 用c语言对文件加密的问题
这个太复杂了,我不会。
对文件加密,我试用的是超级加密3000.
超级加密3000有超快和最强的文件、文件夹加密功能、数据保护功能,文件夹、文件的粉碎删除以及文件夹伪装等功能。
超级加密 3000采用先进的加密算法,使你的文件和文件夹加密后,真正的达到超高的加密强度,让你的加密数据无懈可击。
超级加密3000还支持加密文件的临时解密,文件加密后,双击加密文件,在弹出密码输入对话框输入正确的密码选择确定,该加密文件就处于临时解密,文件使用完毕退出以后,它自动恢复到加密状态,无需再加密。
超级加密3000是一款不可多得的文件加密软件,您可以到网络上搜索超级加密3000给您的文件加密试试看。
B. 我用C语言编写MD5加密,但是不懂MD5算法是如何将密码字符换成16进制字符的呢
比如说字符1吧 十六进制就是31H
你这样写 字符+0x30就可以了
C. C语言文件加密
#include<stdio.h>
intmain()
{charch;
FILE*fp1,*fp2;
fp1=fopen("d:\file1.txt","r");
fp2=fopen("d:\file2.txt","w");
printf("加密后的内容: ");
while((ch=fgetc(fp1))!=EOF)
{ch^=0x6a;putchar(ch);fputc(ch,fp2);}
fclose(fp1);
fclose(fp2);
printf(" 解密后的内容: ");
fp2=fopen("d:\file2.txt","r");
while((ch=fgetc(fp2))!=EOF)
{ch^=0x6a;putchar(ch);}
return0;
}
D. 求大哥破解加密后的十六进制
很有意思。
原文数据全为:“00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ”
加密后变成了:“09 51 55 F4 FB 10 6F A4 D3 E8 87 46 F8 2F 49 CD ; ”
得出这样的结果是有很多方法都可以实现的:
比如每个原数上加上个常数就可以了。
00+09=09;得出第一组加密后的数值
00+51=51;得出第二组加密后的数值
...
00+CD=CD;得出第16组加密后的数值.
加密的方法还有很多,不过这种最简单。
还有就是你给的原文太单一了,不能够更好的分析数据的规律。
如果你能把原文改为如下这段代码再去加密一下,再把加密结果贴上来看一下就好多了。
00000140h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ;
00000150h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ;
00000160h: 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 ; 00000170h: 00 10 20 30 40 50 60 70 80 90 A0 B0 C0 D0 E0 F0 ;
00000180h: 11 11 11 11 11 22 22 22 22 22 22 EE EE EE FF FF
E. c语言如何输出一个文件的16进制
输出十六进制使用语句:
printf("%x",要输出的内容);
望采纳
F. C++ DES加密了一段字符 怎么把这个加密后得到的密文转换为16进制
你好!这个看你要实现什么目的,是单字节转换,还是双字节转换
G. C++怎么把文件读取成16进制的,显示出来,或者16进制的写入文件.
#include <iostream>
#include <fstream>
#include <cassert>
#include <string>
#include <vector>
using namespace std;
class stu{
public:
int no;
int score;
};
vector<stu> ss;
void readFromFile();
void writeToFile();
void inputData();
int main()
{
inputData();
writeToFile();
readFromFile();
for(int i=0;i<ss.size();i++)
{
cout<<ss[i].no<<" "<<ss[i].score<<endl;
}
return 0;
}
void inputData() //从屏幕获取数据
{
int score;
int no;
string str;
do{
stu st;
cout<<"Enter you no : ";
cin>>st.no;
cout<<"Enter you score : ";
cin>>st.score;
ss.push_back(st); //存入学生管理向量
cout<<"是否继续输入数据:";
cin>>str;
}while(str=="Y"||str=="y");
}
void readFromFile() //从文件中读取数据
{
string filename;
cout<<"Enter the readFile name : ";
cin>>filename;
ifstream infile;
infile.open(filename.data()); //将文件流对象与文件连接起来
assert(infile.is_open()); //若失败,则输出错误消息,并终止程序运行
for(int i=0;;i++)
{
stu st;
infile>>hex>>st.no>>st.score;
if(infile.eof())break; //到文件末尾,即不在读取
ss.push_back(st);
}
infile.close(); //关闭文件输入流
cout<<"The Data Input Succeed!\n";
}
void writeToFile() //输出到文件中
{
string filename;
cout<<"Enter the outFile name : ";
cin>>filename;
ofstream outfile;
outfile.open(filename.data());
assert(outfile.is_open()); //失败,则终止程序,并打印错误消息
for(int i=0;i<ss.size();i++)
{
outfile<<hex<<ss[i].no<<" "<<ss[i].score<<endl;
}
outfile.close(); //关闭输出流对象
cout<<"The Data Output Succeed!\n";
}
上述代码在vc++6.0测试通过 满足你的要求 有问题hi我
H. 用C语言中加密文件疑问
因为字母对应的ascII码a-z为65-90, A-Z为97-122。这段代码的意思是将每个字母向后移8位即i(73)变为a(65),j(74)变为b(66),k(75)变为c(67)...,
回到你的问题,每个字母都递减会出现这样的问题:假如你输入的是b对应的ascII码为66,再减8就是58了,没有字母的ascII码为58(对应的符号为‘:’),这就会出现乱码。依次类推所有65+8=73和97+8=103以下的字母加密之后都是乱码形式出现的。为了避免这种情况,加了一个循环即26,这样例子中的b加密之后会变成66-8+26=84 即t。这样就能保证即使是加密,加密出来的字符也是在字母范围之内的
I. 这是不是16进制的数,这种软件加密许可文件有办法破解么
你其实也可以成为解决SuperMap许可设置问题的高手
作者:zhangming(博客名:卫图天下)
这两天用户咨询许可方面的问题比较多,尤其是通过设置试用许可文件的用户。问题主要表现为获取了正确的许可文件,也按正常步骤设置了许可,可是在使用SuperMap相关产品的时候还是报找不到许可。为了便于其他有类似问题的用户尽快解决此问题,把精力投入到熟悉SuperMap产品功能过程中。我将软件许可配置管理相关内容简单介绍一下。
SuperMap许可方式有4种,分别为:单机加密锁,网络加密锁,硬件识别码和计算机名方式。其中前两种主要是购买了SuperMap产品的正式用户(使用加密锁进行加密),后两种主要针对SuperMap产品的试用用户和参加GIS大赛的学生。
试用SuperMap时,安装了SuperMap相关产品,其中会弹出界面来设置许可,在第一个界面下拉列表中选择需要使用的SuperMap产品,下面的单选框中选择软件许可文件方式,按下一步,进入到设置界面。在设置许可文件的界面中有两个选项卡,一个是硬件ID,另一个是计算机名(一般当硬件ID项识别码一栏显示0的时候采用计算机名加密)。以硬件ID方式举例,在识别码一栏会看到9-10位数字(这个是机器硬盘的识别码),把这个数字提供给SuperMap相关销售人员,等待销售人员发送试用许可文件(试用期一般为一个月)。收到试用许可文件后设置后点击确定,就可以使用相关产品了。
我们可以了解一下试用许可文件内容。 下面以一个试用许可文件(许可文件名后缀为dat)举例。这个许可文件我们可以用记事本打开,内容及注释如下:
[Common]------------------------------------基本信息节点
Deion=SuperMap GIS 5 License File-----描述信息
Version=5.0---------------------------------此许可文件支持的SuperMap产品版本
[UserInfo]----------------------------------用户信息节点
User=v2sky----------------------------------用户名
Company=v2sky-------------------------------用户所在公司
HardwareID=2769455625-----------------------用户机器的硬件识别码
TrialVersion=1------------------------------试用类型(1表示有时间限制,0表示无时间限制)
ExpiedDate=2007-06-09-----------------------试用期截止日
[SmoDevCore]--------------------------------核心开发许可节点
LicenseData=CC97F1409E31D80
[SmoDev3D]----------------------------------3D开发许可节点
LicenseData=F165F2906555CAF3
[SmoDevLayout]------------------------------布局开发许可节点
LicenseData=A1CAB5D618CAB6AB
[SmoDevTopology]----------------------------拓扑组件开发许可节点
LicenseData=BC2916B2BD7495E0
[SmoDevAnalyst]-----------------------------空间分析组件许可节点
LicenseData=EDFDFCCC7D11B589
[SmDevSDX]----------------------------------SDX引擎许可节点
LicenseData=CE3DF69EE567CA7
[SmoRtCore]---------------------------------核心组件运行许可节点
LicenseData=3E8462386141EA65
[SmoRt3D]-----------------------------------3D组件运行许可节点
LicenseData=C56DFFA3B3B17D8
[SmoRtLayout]-------------------------------布局运行许可节点
LicenseData=8FCE83674583EB1F
[SmoRtTopology]-----------------------------拓扑运行许可节点
LicenseData=92788AFD52DF5FA
[SmoRtAnalyst]------------------------------空间分析运行许可节点
LicenseData=AE1880B6D0FAF89E
[SmRtSDX]-----------------------------------SDX引擎运行许可节点
LicenseData=97788A48C09BD3C
[SuperMapDeskpro]---------------------------SuperMap Deskpro许可节点
LicenseData=3FD1043B81B7F6
[SuperMapExpress]---------------------------SuperMap Express许可节点
LicenseData=941CB9827644C8CD
[SmISNETProfessional]-----------------------IS专业版许可节点
LicenseData=C8CDA0207DBDC822
[SmISNETAdvanced]---------------------------IS企业版许可节点
LicenseData=E234A789A20BAD
[SuperMapDBuilder]--------------------------DBuilder许可节点
LicenseData=9383BD124DBBF17
从上面这个许可文件内容可以看出来,其中基本涵盖了SuperMap所有产品的试用许可。用户申请试用时一般只有部分产品的许可,比如用户主要做数据的,那么可能许可文件中只有Deskpro许可;如果是做C/S项目二次开发的,那就会包括SmoDev相关许可。
在运行了软件许可配置管理工作设置好许可后,在软件许可配置管理程序同目录会创建一个SuperMapLic.ini配置文件,打开此文件后,我们会看到类似这样的信息(为了说明配置文件信息,这里示范了许可文件方式,网络加密锁方式以及单机加密锁方式):
[Common]
Deion=SuperMap GIS 5 License File
Version=5.1.0
[Objects Runtime]--------------------------Objects运行许可节点
LicMode=3----------------------------------许可模式3表示硬件识别码方式
User=v2sky
Company=v2sky
LicPath=C:\2769455625(0603062).dat---------许可文件所在路径
ExpiredDate=2007-06-09---------------------许可过期时间
TrivalVersion=1----------------------------许可类型,此处为试用
[SuperMap Deskpro]-------------------------Deskpro许可节点
LicMode=1----------------------------------许可模式为1表示试用单机加密锁
[SuperMap Express]-------------------------Express许可节点
...
[Objects Develope]-------------------------Objects开发许可节点
...
[SuperMap IS.NET Adv]----------------------IS企业版许可节点
LicMode=2----------------------------------许可模式为2表示网络加密锁
Protocol=1---------------------------------网络许可通信方式1表示TCP_IP;2表示IPX;...
Server=Server------------------------------网络加密锁所在的服务器名字(或者IP)
用户设置许可后不能使用有什么样的原因呢,一般有下面几种:
1,没有在下拉列表中选择需要使用的软件;
比如本来需要使用SuperMap Deskpro,但是没有选择下拉列表中的Deskpro(默认是SuperMap Objects开发版),这样设置许可时只是对SuperMap Objects开发版设置许可。对于此原因重新设置一下就可以了。
2,设置许可后把相关的dat文件移动位置或者删除了;
我们看上面配置许可后的ini文件,其实ini文件中只是记录了连接信息,并没有把真正的序列号放在ini文件中,所以许可文件在设置后不能移动目录或者删除。对于此问题原因可以把许可文件放到一个不常被移动的位置,设置一下许可。
3,修改了操作系统时间;
SuperMap试用时,系统中记录了设置以及过期时间,不可以为了延期使用来修改操作系统时间(其实如果想继续使用只要再申请就是)。
4,设置许可后可能有其他原因导致许可配置信息文件内容不全;
比如本来是试用许可,可是设置好许可后,ini配置文件中的ExpiredDate值为空。建议把许可配置信息文件(ini文件)删除,重新配置许可。
5,无法生成ini配置信息文件;
这个原因是最近刚刚遇到,用户设置好许可文件后,在许可配置管理工具没有生成对应的ini文件(后来查明其登陆此系统的用户权限不够)。
6,许可文件中缺少需要使用软件的许可;
重新向SuperMap 销售人员申请需要的许可即可。
...若存在其他原因,卫图天下将继续补充。
上面整理的关于许可内容的介绍,许可配置信息文件内容以及一般设置好许可后使用不了软件的原因,相信各位看了以后也能成为配置许可的高手。