求PHP加密方案 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
eric_zyh
V2EX    PHP

求PHP加密方案

  •  
  •   eric_zyh 2011 年 12 月 5 日 5933 次点击
    这是一个创建于 5252 天前的主题,其中的信息可能已经有所发展或是发生改变。
    要求:
    1.加密前数字,加密后也是数字
    2.不管加密钱数字是多大(只要小于10位数),加密后数字始终是10位数

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

    如:加密前 : 706
    二进制偏移前:0000000000000000000001011000010
    偏移后偏移后:0000000000101100001000000000000
    加密后二进制:10000000000101100001000000000000
    加密后 : 2147484354
    29 条回复    1970-01-01 08:00:00 +08:00
    eric_zyh
        1
    eric_zyh  
    OP
       2011 年 12 月 5 日
    有现成的方案更好了。。求帮助
    skywinger
        2
    skywinger  
       2011 年 12 月 5 日
    用个des或是rsa算法不就搞定了?
    issac
        3
    issac  
       2011 年 12 月 5 日
    MD5不行?
    要是偏移的话
    可以用706 << 10;
    CoX
        4
    CoX  
       2011 年 12 月 5 日
    zend? 得通过组件解密吧,如果自己加密自己解密,就没啥意义了。
    skywinger
        5
    skywinger  
       2011 年 12 月 5 日
    @issac MD5/SHA1等HASH签名算法不是加解密算法,只是计算一个散列值数字签名而已,因此数字签名不能够反向计算出原先的明文。
    可以使用DES或是RSA这类的加解密算法来加解密关键数据。
    eric_zyh
        6
    eric_zyh  
    OP
       2011 年 12 月 5 日
    @skywinger : des rsa 看的半天没看太懂~~ php好像也没有内置的函数

    @issac : MD5不行. 我希望加密后是一个10位定长的数字

    偏移的话 可以用706 << 10; 偏移貌似是在操作系统的位做循环,我希望是31位做偏移,不知道有没有方法?

    @CoX : 没找到合适的加解密组件,我只用过 btye64 和 md5 。 都不太符合我的要求,我希望加密后是10位定长的数字,另外 skywinger提到的 des、ras正在看~~ 不知道行不行
    issac
        7
    issac  
       2011 年 12 月 5 日
    @skywinger 呃..要解密的话MD5是不行- -..加解密这方面用的不多..
    miao
        8
    miao  
       2011 年 12 月 5 日
    CoX
        9
    CoX  
       2011 年 12 月 5 日
    @eric_zyh 开始误解意思了,看样子你只是想对某个字符串加密而不是所有php文件加密;如果不需要解密验证的话,md5够用,取前10位就成。
    @miao easycms估计就用的这个加密的,用python几行代码就解了。
    Hyperion
        10
    Hyperion  
       2011 年 12 月 5 日
    干什么用的? 密钥固定嘛?

    可以考虑自己弄一个高次方程, 带入...
    miao
        11
    miao  
       2011 年 12 月 5 日
    @CoX 呵呵,求此解密方式.
    CoX
        12
    CoX  
       2011 年 12 月 5 日
    @miao 没加密后的代码,呵呵~~ 其实我就是想说这种不需要额外组件的加密方式,都能轻松解密的
    skywinger
        13
    skywinger  
       2011 年 12 月 6 日
    @Cox 那简单啊,直接用706转成hex 16进制byte码对一个固定byte字串做一次异或运算就行了。
    CoX
        14
    CoX  
       2011 年 12 月 6 日
    @skywinger 这样加密之后的php文件,能直接解析?
    skywinger
        15
    skywinger  
       2011 年 12 月 6 日
    @CoX 你是要整个PHP文件加密?
    那用deflate压缩后再做一次base64就好了,这样做比较符合规范
    CoX
        16
    CoX  
       2011 年 12 月 6 日
    @skywinger 我的意思就是指php文件的加密,如果不额外用组件,都能轻松解密。可以看一下我前面的回帖。
    skywinger
        17
    skywinger  
       2011 年 12 月 6 日
    @CoX 自己写加解密算法?何必呢!
    CoX
        18
    CoX  
       2011 年 12 月 6 日
    @skywinger 我很少写php的,我只是想说普通的php加密不靠谱
    skywinger
        19
    skywinger  
       2011 年 12 月 6 日
    @CoX 我也不是做PHP的,但是我接触加解密体系这块比较多,我是做金融终端设备接入系统的,接触很多金融安全级别的加解密体系,DES、RSA、mac计算等等。
    eric_zyh
        20
    eric_zyh  
    OP
       2011 年 12 月 6 日
    @miao @CoX @skywinger 多谢3位的回答~~

    我不折腾那么烦了。 直接向左边位移三位、取反、第一位异或为0。

    可能我一开始也没讲太清楚,其实我就是想把“用户ID”字段 做加密解密,并保证加密后一定是10位的数字。加密方法也不一定要多严密,只要第一眼看不出来“用户ID”就OK。而且加密解密操作很频繁,所以想到用2进制去弄。
    myrual
        21
    myrual  
       2011 年 12 月 6 日
    @skywinger
    金融系统用的PBOC算法么?
    skywinger
        22
    skywinger  
       2011 年 12 月 6 日
    @myrual PBOC不是算法,是IC卡设备安全认证,
    算法基本上就是DES、3DES(对称加密算法)
    RSA(非对称加密算法)
    SHA1、MD5(数字签名)
    myrual
        23
    myrual  
       2011 年 12 月 6 日
    @skywinger 多谢指导。我才知道原来我们总用的这个PBOC是怎么来的。
    其实PBOC用到了算法。他使用的是3des。只不过是两次而已。

    银行领域还在使用des 3des么?不是说已经不够安全了么?
    arzon
        24
    arzon  
       2011 年 12 月 6 日
    要保证加密后的结果是定长, 那怎么能解密??
    skywinger
        25
    skywinger  
       2011 年 12 月 6 日
    @myrual 需要保证安全的话,就需要使用硬件加密,尽量不采用软加密,另外计算数字签名mac值,mac算法由具体的金融机构定制。另外金融交易报文多采用ISO8583报文规范。
    CoX
        26
    CoX  
       2011 年 12 月 6 日
    @eric_zyh 那不如直接用一个字段来代替ID,省去加密解密操作
    myrual
        27
    myrual  
       2011 年 12 月 6 日
    @skywinger 目前pos机基于的是ISO8583 87 还是93版?
    另外包括银联做的手机支付走gprs的也是这个报文格式么?
    skywinger
        28
    skywinger  
       2011 年 12 月 7 日
    对的,基本都是ISO8583报文格式。
    手机支付是基于8583基础上的XML报文。
    sharmy
        29
    sharmy  
       2011 年 12 月 22 日
    定长就不好搞了吧,而且10位有点短
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1179 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 52ms UTC 23:08 PVG 07:08 LAX 16:08 JFK 19:08
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86