二维码采用QR编码,在生成二维码图片时候能对二维码私密信息进行加密

csyd1101 2012-04-05 05:06:08
类似于火车票的二维码实现,涉及到个人信息的怎么进行加密才能在市面上识别软件拍摄后不能看到?网上搜罗的资料都是如何将String类型的信息写入二维码图片中,生成二维码图片,同时还能进行该信息的解析。
我想求教一下,有没有什么处理能让一个String类型的写入图片中,生成二维码,拍摄识别后看不到私密信息。
...全文
3440 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
MiceRice 2012-04-05
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]
是不是可以理解为,数据一旦写入到二维码图片中,用软件识别出来的就是写进去的东西?如果想实现我说的那种就只能将想显示的放到一个二维码中,不想显示的放到一个二维码中?
[/Quote]

第一个问题回答是:是的。

第二个问题回答是:好像没意义,你放入另一个二维码,我也可以去扫描另一个二维码啊,还不是照样显示出来?

我认为火车票上的二维码信息,未必有身份证号码,有两个解决方案:
1、身份证号码只需要存储在购票系统里面就行了,所扫描出来的二维码只要能通过某个标识或者关键字能关联到购票系统的相关销售记录就行了。
2、类似数据库中不能直接存储用户密码的解决方案,火车票二维码可以存储身份证号码的MD5散列值,通过比对该散列值,就能基本确认身份证号码是否与该火车票号码一样了。
csyd1101 2012-04-05
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
识别的时候看不到是不可能的,只能做到让其看不懂。

也就是String中间有一部分加密了,这个也可以做到啊,并没啥难度。比如:

String name = "admin";
String pass = encode("password");
String desc = "超级用户";
String all = name + "\n" + pass + "\n" + desc;
I……
[/Quote]

是不是可以理解为,数据一旦写入到二维码图片中,用软件识别出来的就是写进去的东西?如果想实现我说的那种就只能将想显示的放到一个二维码中,不想显示的放到一个二维码中?
csyd1101 2012-04-05
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
识别的时候看不到是不可能的,只能做到让其看不懂。

也就是String中间有一部分加密了,这个也可以做到啊,并没啥难度。比如:

String name = "admin";
String pass = encode("password");
String desc = "超级用户";
String all = name + "\n" + pass + "\n" + desc;
I……
[/Quote]

恩呢,那类似于火车票的那种二维码,如果实名制了,里面应该也有身份证信息吧?这种也就是俗话说的不想让看到的信息,用软件拍摄该二维码,也木有看到身份证号码,这个是怎么搞的吖?
csyd1101 2012-04-05
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
说了半天貌似你还是没理解啊,那个是加密,加密是另外一回事。

这么说吧,你先把原文String,每个字符单独拆出来,都 XOR 85,然后组装成新的字符串,这个字符串就可以认为是密文了,一般人看到这个字符串肯定不理解是什么意思。

然后就把这个密文转成二维码吧。

识别的时候,通过二维码扫描可以得到密文,然后再把每个字符单独拆出来,然后再 XOR 85,就得到原文了。



当……
[/Quote]
比如我想往二维码中塞入一个ID和name,我想让软件拍摄时候只能显示name,ID看不到,但是能通过获得该图片对象而解析。塞入二维码中的数据能不能控制其显示还是隐藏?
MiceRice 2012-04-05
  • 打赏
  • 举报
回复
识别的时候看不到是不可能的,只能做到让其看不懂。

也就是String中间有一部分加密了,这个也可以做到啊,并没啥难度。比如:

String name = "admin";
String pass = encode("password");
String desc = "超级用户";
String all = name + "\n" + pass + "\n" + desc;
Image = QRCode(all);
csyd1101 2012-04-05
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
说了半天貌似你还是没理解啊,那个是加密,加密是另外一回事。

这么说吧,你先把原文String,每个字符单独拆出来,都 XOR 85,然后组装成新的字符串,这个字符串就可以认为是密文了,一般人看到这个字符串肯定不理解是什么意思。

然后就把这个密文转成二维码吧。

识别的时候,通过二维码扫描可以得到密文,然后再把每个字符单独拆出来,然后再 XOR 85,就得到原文了。



当……
[/Quote]

我听你说的意思,就是一个编码和解码的过程。这样的加密和不加密效果差不多了。只是显示的东西能识别和不能识别的问题。我想咨询的是,不管怎么处理我放到二维码中的东西,用市面上的软件拍摄,能不能有种方法控制,让我塞到二维码中的那么多数据有的显示,有的不显示?也就是拍摄之后只能让他显示我想让它看到的东西?或者识别时候会自动屏蔽到我不想让它看到的数据,这个数据不是以某种不能直观看到的方式,而是根本不显示。【PS:有点儿纠结了。。。】
MiceRice 2012-04-05
  • 打赏
  • 举报
回复
说了半天貌似你还是没理解啊,那个是加密,加密是另外一回事。

这么说吧,你先把原文String,每个字符单独拆出来,都 XOR 85,然后组装成新的字符串,这个字符串就可以认为是密文了,一般人看到这个字符串肯定不理解是什么意思。

然后就把这个密文转成二维码吧。

识别的时候,通过二维码扫描可以得到密文,然后再把每个字符单独拆出来,然后再 XOR 85,就得到原文了。



当然,这种级别的加密,破解实际上很容易。


csyd1101 2012-04-05
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
二维码并不负责加密,二维码跟条码(一维码)的设计目标是一样的,方便机器能否自动识别图文信息,并有一定的抗破损、扭曲和污染能力。

所以如果要加密的话,应该是先把信息加密好,再转为二维码。
比如你可以把原始信息,先用某种对称或非对称加密算好,生成二进制流转为BASE64字符串,然后再将其转为二维码。那么别人即便能扫描出二维码的内容,也只能得到一组看不懂的密文。


至于加密算法,这个就可……
[/Quote]

能实现看不懂的密文,那像火车票一样的,那种效果是基于什么实现的吖?所有信息都写入到二维码图片中,但是识别软件拍摄后,就是类似密文那样的不显示?
MiceRice 2012-04-05
  • 打赏
  • 举报
回复
二维码并不负责加密,二维码跟条码(一维码)的设计目标是一样的,方便机器能否自动识别图文信息,并有一定的抗破损、扭曲和污染能力。

所以如果要加密的话,应该是先把信息加密好,再转为二维码。
比如你可以把原始信息,先用某种对称或非对称加密算好,生成二进制流转为BASE64字符串,然后再将其转为二维码。那么别人即便能扫描出二维码的内容,也只能得到一组看不懂的密文。


至于加密算法,这个就可以根据你要加密的内容、加密级别和查验复杂度要求,然后按需挑选了。
csyd1101 2012-04-05
  • 打赏
  • 举报
回复
求指教吖~~~

50,527

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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