求PHP加密方案

2011-12-05 15:50:53 +08:00
 eric_zyh
要求:
1.加密前数字,加密后也是数字
2.不管加密钱数字是多大(只要小于10位数),加密后数字始终是10位数

我想了个方法把加密前的数字的2进制在31位中循环左偏移10位,然后第一位补充1。不知道可不可行。

如:加密前 : 706
二进制偏移前:0000000000000000000001011000010
偏移后偏移后:0000000000101100001000000000000
加密后二进制:10000000000101100001000000000000
加密后 : 2147484354
5282 次点击
所在节点    PHP
29 条回复
myrual
2011-12-06 15:48:01 +08:00
@skywinger
金融系统用的PBOC算法么?
skywinger
2011-12-06 16:22:32 +08:00
@myrual PBOC不是算法,是IC卡设备安全认证,
算法基本上就是DES、3DES(对称加密算法)
RSA(非对称加密算法)
SHA1、MD5(数字签名)
myrual
2011-12-06 16:29:07 +08:00
@skywinger 多谢指导。我才知道原来我们总用的这个PBOC是怎么来的。
其实PBOC用到了算法。他使用的是3des。只不过是两次而已。

银行领域还在使用des 3des么?不是说已经不够安全了么?
arzon
2011-12-06 16:30:22 +08:00
要保证加密后的结果是定长, 那怎么能解密??
skywinger
2011-12-06 17:13:02 +08:00
@myrual 需要保证安全的话,就需要使用硬件加密,尽量不采用软加密,另外计算数字签名mac值,mac算法由具体的金融机构定制。另外金融交易报文多采用ISO8583报文规范。
CoX
2011-12-06 18:07:56 +08:00
@eric_zyh 那不如直接用一个字段来代替ID,省去加密解密操作
myrual
2011-12-06 22:00:55 +08:00
@skywinger 目前pos机基于的是ISO8583 87 还是93版?
另外包括银联做的手机支付走gprs的也是这个报文格式么?
skywinger
2011-12-07 09:10:21 +08:00
对的,基本都是ISO8583报文格式。
手机支付是基于8583基础上的XML报文。
sharmy
2011-12-22 12:43:28 +08:00
定长就不好搞了吧,而且10位有点短

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/22846

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX