导航:首页 > 文档加密 > 一串数字加密成汉字

一串数字加密成汉字

发布时间:2022-09-23 15:33:51

㈠ 我想弄一个类似摩斯电码的用数字能够代表汉字的密码,该怎么办

汉字--拼音--按规律打乱拼音--用手机键盘将拼音转换成数字(例:A=21,B=22,C=23,D=31),然后根据摩斯密码表将得到的数字变成摩斯密码,完工。难点就在于变成摩斯密码前如何加密。你可以网络一下栅栏密码什么的,还有平民常用的五笔加密什么的。望采纳

㈡ 请教个问题,一串数字怎么转成汉字呢 比如说 汉字一 对应 19968 C++中怎么将19968转成汉字” 一 “呢

// changeDate.cpp : 定义控制台应用程序的入口点。
//
#include <iostream>
#include <string>
#include <ctype.h>
using namespace std;

int check(string sNum);
void changeData (string sNum);
void changeNum(char cNum);
void change(int iNum);
int checkZero(const char * pTmp);

int _tmain(int argc, _TCHAR* argv[])
{
int rc;

string sNum;

do
{
cout<<"please input a number"<<endl;
cin>>sNum;
rc = check(sNum);
if(rc == 0)
{
break;
}
if (sNum.length() >=15)
{
cout<<"number to long"<<endl;
break;
}
}while(1);

changeData(sNum);

system("pause");
return 0;
}

int check(string sNum) /*检查是否为合法的数字串*/
{
const char *pTmp = sNum.c_str();
int iNum=0;

for(int i=0; i != sNum.length(); i++)
{
if( !isdigit(*(pTmp+i)))
{
if (*(pTmp+i) != '.')
{
cout<<"Input isn't a number!"<<endl;
return -1;
}
else
{
iNum++;
}

}
}
if (iNum >= 2)
{
cout<<"Iput number wrong!"<<endl;
return -1;
}
else
{
return 0;
}
}

int chechPoint(string sNum) /*查找小数点的位置*/
{
const char *pTmp = sNum.c_str();

for(int i=0; i != sNum.length(); i++)
{
if (*(pTmp+i) == '.')
{
return i;
}
}
return 0;
}

void changeData (string sNum) /*将数字串用中文描述出来*/
{

if (sNum.length() <= 0)
{
return;
}
int i;
char cTmp;
int iTmp;
int iRet;
int iZero=0;
int iHead=0;
int iPoint=0;
int iHeadLen=0;
const char * pTmp = sNum.c_str();
iPoint = chechPoint(sNum);/*检查是否有小数位*/
if (iPoint > 0 && iPoint < sNum.length() -1 )
{
iHeadLen = iPoint;
}
else
{
/*整数部分只一个数字的情况*/
if ( sNum.length() == 1)
{
changeNum(*pTmp);
cout<<endl;
return;
}
iHeadLen = sNum.length()-1;
}
/*整数部分转换*/
for (i = 0; i != iHeadLen; i++)
{
/*头字符为0的情况*/
if (*pTmp == '0' && iHead == 0)
{
/*整数部分只有一个的情况*/
if (iHeadLen == 1)
{
changeNum(*pTmp);
}
iHead++;
continue;
}
if (*(pTmp+i) == '0')
{
iRet = checkZero(pTmp+i);
if(iRet > 0)
{
int j;
for (j = 0; j <= iRet; j++)
{
iTmp = iHeadLen-i-j;
if (iTmp == 5|| iTmp == 9 || iTmp == 12)
{
change(iHeadLen-i-j);
}
}
i +=iRet;
iZero++;
continue;
}
else
{
iTmp = iHeadLen-i;
if (iTmp == 5|| iTmp == 9 || iTmp == 12)
{
change(iHeadLen-i);
}
else
{
if (iTmp == 1)
{
break;
}
changeNum(*(pTmp+i));
}

}

}
else
{
if (iZero > 0)
{
changeNum('0');
iZero=0;
}
changeNum(*(pTmp+i));
change(iHeadLen-i);
}
}

/*小数部分转换*/
if (iPoint > 0 && iPoint < sNum.length()-1 )
{
cout<<"点";
int k;
for (k = iPoint+1; k != sNum.length(); k++)
{
changeNum(*(pTmp+k));
}
}

cout<<endl;
}

void changeNum(char cNum)
{
switch(cNum)
{
case '0': cout<<"零";break;
case '1': cout<<"一";break;
case '2': cout<<"二";break;
case '3': cout<<"三";break;
case '4': cout<<"四";break;
case '5': cout<<"五";break;
case '6': cout<<"六";break;
case '7': cout<<"七";break;
case '8': cout<<"八";break;
case '9': cout<<"九";break;
}
}
/*单位转换*/
void change(int iNum)
{
switch(iNum)
{
case 1: break;
case 2: cout<<"十";break;
case 3: cout<<"百";break;
case 4: cout<<"千";break;
case 5: cout<<"万";break;
case 6: cout<<"十";break;
case 7: cout<<"百";break;
case 8: cout<<"千";break;
case 9: cout<<"亿";break;
case 10: cout<<"十";break;
case 11: cout<<"千";break;
case 12: cout<<"万";break;
case 13: cout<<"十";break;
case 14: cout<<"百";break;
case 15: cout<<"千";break;
}
}

/* 检查首个字符为0是否有几个连续的0,返回连接0的个数 */
int checkZero(const char * pTmp)
{
const char *p = pTmp;
int i;
int iRet = 0;
for(i = 1; i != strlen(p); i++)
{
if (*(p+i) == '0')
{
iRet++;
}
else
{
break;
}
}
return iRet;
}

编译通过,可以直接运行,还可以支持小数.

㈢ 用C语言把一串数字字符串变成中文数字

#include<stdio.h>

voidprint_chinese(charc)
{
switch(c)
{
case'0':printf("零");break;
case'1':printf("一");break;
case'2':printf("二");break;
case'3':printf("三");break;
case'4':printf("四");break;
case'5':printf("五");break;
case'6':printf("六");break;
case'7':printf("七");break;
case'8':printf("八");break;
case'9':printf("久");break;
default:printf("??");break;
}
}
intmain()
{
charstr[1000];
scanf("%s",str);
for(inti=0;str[i]!='';i++)
print_chinese(str[i]);
printf(" ");
}

㈣ 用MD5能否加密汉字

可以加密汉字啊!如果能解开的话,加密和解密结果肯定是一样的。不过md5解密很困难的。数字加字母的那种已经很难破解了!汉字的更别说了!
不仅仅是汉字,任何字符串都可以md5加密!

java 把12345 这些数字转出成大写的中文汉子

public class Admin {

public static void main(String[] args) {
String[] arr = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" };

String str = "12345";

char[] c = str.toCharArray();
for (int i = 0; i < c.length; i++) {
int a = Integer.parseInt(String.valueOf(c[i]));
System.out.print(arr[a]);
}
}
}

㈥ JAVA中,怎样将字母加密成汉字 我看有人用一个字母与20000异或就变成了汉字。 其中原理是

汉字在Java里面用到两个字节(其实都是2个字节 char类型的 不过在流里输入的好像不是)
也就是2^15~2^16-1都可以表示汉字
而20000在这个范围内的 字母的话 前8位是0 所以 字母和20000异或也就是在那个范围内的 可以表示出汉字的 而异或这个操作是可以还原的 用密文异或20000也可以变成原来的字母

㈦ 数字转换成汉字是什么密码

4194418141634192622374
大家注意一下这组数字 最大的是数字的范围是1-9
手机上一共有10个数字按键 其中0和1不对应任何字母
所以不存在0 而为什么会有1呢?
大家在仔细看一下,如果将数字从左到右编序号,12345直到22
有没有发现奇数编号对应的数字没有1
所以奇数编号的数字应该是对应有字母的手机按键
而所有偶数编号对应的数字都是1234
为什么只有1234?大家再看看手机,所有有字母的按键 最多只有4个字母,所以偶数编号的字母对应的是按键上的第几个字母。
按照这个方法我们来看下这串数字 xx94xxxxxxx74
这是仅有的两个偶数编号的4 相对应9和7
你们再看看手机 只有按键9和7才对应4个字母 其它的都只对应3个

--------------------------------------------------------------------------------

4
我重新整合了这个解密步骤。
如下。
38楼给我的提示。还是让我想到了手机。
你们看解码出来分组后的数字分别是,
41 94 41 81 41 63 41 92 62 23 74
并且每个组合个位数都不超过4。
特别是除了十位数是7和9这两个数字后面有4以外其他的都没有4。
看图。
手机的键盘上7和9的字母也是4个的,其他的都不超过4个字母。
那么,按照上面的组合解码可得。
G Z G T G O G X N C S
解码后我们发现每一组数字都能解释出来。
目前我只能解码到这里的。
虽然很不通顺,但我相信这里应该是个突破点。
93楼的键盘代入也给了我很大的提示。
包括楼主的“她说途中有一个步骤是"替代密码"而密码表则是我们人类每天都可能用到的东西”
那么很可能就是电脑键盘。
因为QWE的格式是被世人所认可的,也就有可能成为密码的码表。
码表 QWE=ABC依次类推。
那么解码G Z G T G O G X N C S
就是G=O Z=T G=O T=E G=O O=I G=O X=U N=Y C=V S=L
翻译过来就是 O T O E O I O U Y V L
其实到这里就已经大概知道答案是什么了。
按照逻辑来整理,只要你重组这些字母的时候你就看到了。
虽然重组有很多种例如,LV IOU ET OOO
可是这些没有语言性质。因为楼主说过最终答案是英语。
所以唯一一个符合逻辑的答案应该是I LOVE YOU TOO.
可是我还不确定。
因为这里我才解了第3层就已经看出答案了。
所以我决定用O T O E O I O U Y V L
进行再次解码。
我用了很多种解码方法。
凯撒,乘法等等。。
最后我发现了只有栅栏才能读得通。
分成两排
O T O E O I
O U Y V L
重组后,OOTUOYEVOLI。
然后倒序,ILOVEYOUTOO.
I LOVE YOU TOO.就自然而然的出来了。
最后我才肯定密码就是I LOVE YOU TOO.
最后的最后,我敢肯定楼主有一个非触摸屏的手机,并且键盘一定是标准格式的。
而且应该有一台笔记本或者你经常接触电脑。
另外楼主和楼主的女人关系应该是认识很久的那种,而不是一见钟情。
而且楼主告白的时候应该有用到I LOVE YOU 或者我爱你之类的字眼。

㈧ 我想弄一个类似摩斯电码的用数字能够代表汉字的密码,该怎么办

汉字--拼音--按规律打乱拼音--用手机键盘将拼音转换成数字(例:A=21,B=22,C=23,D=31),然后根据摩斯密码表将得到的数字变成摩斯密码,完工。难点就在于变成摩斯密码前如何加密。你可以网络一下栅栏密码什么的,还有平民常用的五笔加密什么的。望采纳

㈨ 摩斯密码 几个数字代表一个汉字

都有可能,摩斯密码和拼音一样,几个为一组。有的只需两个字母就可以拼出一个汉字,有的却需要五个。如果用摩斯密码加密的话,十组密码组成一个汉字也是常见的。

例:爱(ai)

(第一层)手机键盘加密:21,43(看看手机键盘就知道了)

(第二层)按规律打乱:2413

(第三层)摩斯密码:。。---|。。。。-|。----|。。。--

这只是简单的,如果不用重复方法最多可以加密五层。

一般来说,某个情报组织,如果要用汉字来传递信息,需要有一套数字密码本,用特定的四位数字代替一个汉字。

四位数字最多可以表示10000个汉字,这对于常用的汉字已经足够了,一般常用汉字也就1000多到3600个。摩斯密码的密码本,非常公开,哪个汉字对应哪四个数字,组织内成员如果需要使用的话,都必须清楚。

电影里,地下党、军统、中统等组织,都有各自的这种密码本,而且很少更换。因为一旦更换,数字代表的汉字就会变化,这样这套密码就没办法对每个人适用了。 因为这套数字密码非常公开,只有在隐蔽条件下才有使用价值,一旦被截获或者发现,就直接可以破译了。

(9)一串数字加密成汉字扩展阅读

摩尔斯电码是一种早期的数字化通信形式,通过点(滴)、划(嗒)、停顿不同的排列顺序,来表达不同的字母、数字、符号。它是1837年,被美国人塞缪尔·莫尔斯或者艾尔菲德·维尔(发明者有争议)发明。

1901年12月12日,在位于加拿大东南角的纽芬兰,接收到了从英国西南角的宝窦(Poldhu),用大功率发射电台发送“S”字符的国际摩尔斯电码,“嘀、嘀、嘀”三声微弱而短促的讯号,通过电波传到2500公里外的大西洋对岸。无线电的诞生,让摩尔斯电码如虎添翼,开启了无线电通讯的辉煌时代。

阅读全文

与一串数字加密成汉字相关的资料

热点内容
加强数字货币国际信息编译能力 浏览:584
购买的app会员怎么退安卓手机 浏览:889
程序员的种类及名称 浏览:292
美国程序员薪资 浏览:12
黑石通汇证券服务器什么时候到期 浏览:391
东方财富app里我的关注怎么看 浏览:749
bm3d单反级降噪算法 浏览:457
华为安卓机激活时间怎么查询 浏览:850
如何用优盘重装服务器系统 浏览:317
日本结婚三代算法 浏览:920
皓强工具解压步骤 浏览:690
部队抗洪抢险命令范文 浏览:888
欧姆龙plc编程软件使用教程 浏览:594
ai文件pdf 浏览:912
腾讯云服务器挂载混合云 浏览:758
智能小车用什么单片机 浏览:463
java怎么给窗口关闭 浏览:940
列举51单片机的寻址方式 浏览:706
剪辑app怎么写长篇文字 浏览:400
app专属流量过月租怎么不更新 浏览:656