要开发一个程序,需要对密码进行解码,原程序是用C写的,解码的方法就是用两个规定的字符串来与用户输入的密码进行按位与操作。现在想用JAVA重写这个程序,但是JAVA里没有字符的与操作,请教高手,如何实现这样的功能?

解决方案 »

  1.   

    Java里也有字符与的操作啊!a & b
      

  2.   

    你用java.lang.里面的String对象的charat(int i)方法通过循环对自字符串逐个提取对比就可以了.
      

  3.   

        /**
         * 
         * @param key1 第一个规定的字符串
         * @param key2 第二个规定的字符串
         * @param string 密码
         * @return 解码后的密码
         */
        public String decode(String key1,String key2,String string){
        
         byte[] key1Bytes = key1.getBytes();
         byte[] key2Bytes = key2.getBytes();
         byte[] stringBytes = string.getBytes();
        
         for(int i = 0 ;i < stringBytes.length ; i ++){
         stringBytes[i] = (byte)(stringBytes[i]&key1Bytes[i]);
         stringBytes[i] = (byte)(stringBytes[i]&key2Bytes[i]);
         }
         return new String(stringBytes);
        }    
      

  4.   

    ps:我有几个疑问 
        ql,这里面必须得三个字符串长度一样,但是设置密码 时候将密码长度限制死是否合适?
        q2,一般来说,这种简单方式的加密,都是采用异或 的位操作,解码的时候再重新异或一下 即可,我不太清楚 楼主的加密机制是怎么一回事,用这种方式来解密,感觉一头雾水