我用的是Mysql数据库:update user_table set user_password=password(1234) where user_id='1';这样把密码 1234 加密后,
查询 select password(1234);  
和查询 select user_password from user_table where user_id='1';
这两个语句的结果是不一样的,请问如何对比加密之前的密码和加密之后的密码呢?
如何使这两个语句查询出来的结果一样呢?
谢谢!

解决方案 »

  1.   

    password(1234)查询出来的结果是:
    *A4B6157319038724E3560894F7F932C8886EBFCF
    user_password 查询出来的结果是:
    *A4B6157319038724E3560894F7F932C前面都是一样的,就是后面不一样,请问这是为什么呢?谢谢!
      

  2.   

    1.这必须看你的加密函数是怎么写的,说不定里面使用什么变量之内的东西包含在里面,比如说用时间作为了唯一性的衡量,所以你每次加密后,加密的结果都不一样。
    2.如果你们使用的对称加密的算法,公钥和私钥都是一样的,你要获取加密之前后加密之后的结果,对你的加密之后的结果再password一次就可以了
    password(A4B6157319038724E3560894F7F932C8886EBFCF)=1234
    3.如果你们使用的非对称加密算法,那必须拿到你们的私钥才可以。比如私钥upassword
    upassword(A4B6157319038724E3560894F7F932C8886EBFCF)=1234
    ----------good luck