有没有一种方法能把一个汉字转换为另一个汉字存储 然后按相同的方法转换回来

放猪之人 2013-03-06 10:01:37
老大想给手机里的sqlite数据库加密 想通过汉字转换的方法简单的加一些 不能直接读懂就行 可怎么把一个汉字变成另一个汉字啊
...全文
275 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
放猪之人 2013-03-07
  • 打赏
  • 举报
回复
引用 13 楼 zhao4zhong1 的回复:
奉劝楼主不要把有限的生命浪费在无限的加密解密死循环中!
我也不想 老大的需求 一个基本开元的数据库非要加密 跟他反应情况吧 他就说客户需求
赵4老师 2013-03-07
  • 打赏
  • 举报
回复
奉劝楼主不要把有限的生命浪费在无限的加密解密死循环中!
nice_cxf 2013-03-07
  • 打赏
  • 举报
回复
+1大概有点问题,部分数据+1可能不是中文了,交换也有问题,有可能和原先相同,想做好的话要看编码 GB2312中汉字从 0xb0a1 开始,到 0xf7fe 为止,如果是GB2312编码的话,加密时如果!=0xf7fe则+1,否则=0xb0a1
super_admi 2013-03-07
  • 打赏
  • 举报
回复
其实,所谓的加密,本质上,绝大多数都是字符的变换,只是不同的加密方式,变换规则不一样而已。 所谓的解密,正常手段,当然就是加密方式的逆变换。前面说的异或,就是最简单的加密和解密方法。
zilaishuichina 2013-03-07
  • 打赏
  • 举报
回复
引用 8 楼 program_pointer 的回复:
引用 6 楼 zilaishuichina 的回复:GB2312中汉字从 0xb0a1 开始,到 0xf7fe 为止 最简单的就是对每个汉字+1 C/C++ code?123WCHAR str[] = L"汉字";str[0]++;str[1]++; 加密之后是 “汊存”两个字为什么我这输出的是数字
程序字符编码的问题吧 你直接看Alt+3就知道了
ForestDB 2013-03-07
  • 打赏
  • 举报
回复
'a' + 1是多少? 汉 + 1是多少? 去看看编码(集)
放猪之人 2013-03-07
  • 打赏
  • 举报
回复
引用 6 楼 zilaishuichina 的回复:
GB2312中汉字从 0xb0a1 开始,到 0xf7fe 为止 最简单的就是对每个汉字+1 C/C++ code?123WCHAR str[] = L"汉字";str[0]++;str[1]++; 加密之后是 “汊存”两个字
为什么我这输出的是数字
swlilike 2013-03-07
  • 打赏
  • 举报
回复
汉子是2个字节, 两个字节调换试试
zilaishuichina 2013-03-07
  • 打赏
  • 举报
回复
GB2312中汉字从 0xb0a1 开始,到 0xf7fe 为止 最简单的就是对每个汉字+1

	WCHAR str[] = L"汉字";
	str[0]++;
	str[1]++;
加密之后是 “汊存”两个字
ForestDB 2013-03-06
  • 打赏
  • 举报
回复
A变成B,B变成C,C变成A。 另外一种就是把字节和一个固定的字节做异或加密,再异或一次解密。
图灵狗 2013-03-06
  • 打赏
  • 举报
回复
汉字就是一个16bit的码而已,加一点偏移不超过GB2312的编码范围即可。
赵4老师 2013-03-06
  • 打赏
  • 举报
回复
hz^=0x5a5a;//试试看
风行踩火轮 2013-03-06
  • 打赏
  • 举报
回复
方法很多,从汉子本身的变换,从16bit信息的变换,看你希望采用什么方法放了
shiter 2013-03-06
  • 打赏
  • 举报
回复
异或一个值,再异或变回来?

33,321

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧