怎么给汉字加密
① 怎么用凯撒密码加密一句中文
凯撒密码作为一种最为古老的对称加密体制,在古罗马的时候都已经很流行,他的基本思想是:通过把字母移动一定的位数来实现加密和解密。明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推X将变成A,Y变成B,Z变成C。由此可见,位数就是凯撒密码加密和解密的密钥。我对“怎么用凯撒密码加密一句中文”产生了疑问,实际上解决方法可以有很多种,例如用数组中不断地“大、风、方……”这些词的简单位移,事实上经过搜索,我选择了使用的变换来完成。即,可以用汉字对应的字符码来进行变换操作,这样出来的还是汉字。比如汉字“一”是0x4e00,凯撒移位为1的话0x4e00+1=0x4e01,对应的汉字是“丁”,如果移位为三,就是0x4e03,对应汉字是“七”。将汉字范围内的整型转换为16进制字符串作为后缀,前面加入u,形成对应的unicode值。这段代码并不复杂,遇到的问题在于:当我在main函数调用时,注释掉的该行(如下)不能够实现我把转义字符去掉,即最后输出的是u593a这种形式,而非unicode值对应的“太”。只要把得到的报文中的“”换成“”,我想就能正常地将Unicode输出成中文了,首先想到的是使用字符串的方法。使用(“\“,““),但是发现输出结果没有任何变化。 解决方法是:查了下API文档,方法的定义是:public String replaceAll( String regex,String replacement) 。
② 有什么加密能把中文加密成只有字母和数字的加密算法
可以用Base64编码中文,但Base64里可能出现/和=这两个符号.如果用汉字内码的十六进制表示,可以达到只有数字和字母的效果,解码也比较容易.
③ 如何用c语言加密和解密汉字
汉字应该是char类型的数据。你可以用强制类型转换将其转换为ASCII码,加密的时候加上2,然后下次解密的时候减去2,在强制转换为char类型的数据。代码大概就像这样:
int JiaMi(char s)
{
return (int)(s + 2);
}
char JieMi(int code)
{
return (char)(code - 2);
}