需要在Java中加密和解密,无法使用Base64。。。我想

需要在Java中加密和解密,无法使用Base64。。。我想,java,eclipse,encryption,base64,Java,Eclipse,Encryption,Base64,我需要加密和解密为四位数的pin进入数据库,我有麻烦。我已经尝试使用使用Base64的示例,即使在导入包之后也找不到类。我做错了什么?我知道下面的类可能是正确的,但是为什么它不能找到类并创建一个对象呢。在eclipse中,当我导航到参考库中的Base64类时,它会显示“未找到源代码” 抱歉,如果我没有正确使用这些论坛,这是我的第一篇帖子 谢谢我想你需要下载。下载jar后,需要将其作为构建路径中的库添加到Eclipse项目中。(如果你已经这么做了,我很抱歉。你的帖子里不清楚。) 完成后,您仍然无法

我需要加密和解密为四位数的pin进入数据库,我有麻烦。我已经尝试使用使用Base64的示例,即使在导入包之后也找不到类。我做错了什么?我知道下面的类可能是正确的,但是为什么它不能找到类并创建一个对象呢。在eclipse中,当我导航到参考库中的Base64类时,它会显示“未找到源代码”

抱歉,如果我没有正确使用这些论坛,这是我的第一篇帖子


谢谢

我想你需要下载。下载jar后,需要将其作为构建路径中的库添加到Eclipse项目中。(如果你已经这么做了,我很抱歉。你的帖子里不清楚。)


完成后,您仍然无法在Eclipse中看到源代码,但您的项目在运行时应该可以正常工作

我想你需要下载。下载jar后,需要将其作为构建路径中的库添加到Eclipse项目中。(如果你已经这么做了,我很抱歉。你的帖子里不清楚。)


完成后,您仍然无法在Eclipse中看到源代码,但您的项目在运行时应该可以正常工作

不要使用Base64,它是一个编码器而不是加密。哦,我觉得这真是一个傻瓜。。。我会用谷歌搜索一个更合适的类来使用。除非你知道哪一个是最好的?不要使用Base64,它是一个编码器而不是一个加密。哦,我觉得这是一个什么玩意儿。。。我会用谷歌搜索一个更合适的类来使用。除非你知道哪一个最好?谢谢。对不起,我的帖子不清楚。我已经下载了jar并将其添加到我的项目库中。看来进口包装不错。(org.apache.commons.codec.binary.Base64)。但当我试图创建Base64对象时,它无法识别。@JoeChamberlain Strange。。。听起来很像它不在类路径上。也许可以删除
Base64的导入声明,然后执行CTRL+SHIFT+o以确保选择正确的类。无论如何,听起来好像你想加密(而不是编码)!再来一次。该类被正确导入,我所使用的示例被错误地使用。当我静态地访问类而不是创建一个实例时,它就工作了。是的,我对这个很陌生。我将研究散列。如果我浪费了你的时间,我向你道歉。:)谢谢大家。我最终使用BCrypt0.3散列密码。非常简单,从我所能看到的,安全。谢谢。对不起,我的帖子不清楚。我已经下载了jar并将其添加到我的项目库中。看来进口包装不错。(org.apache.commons.codec.binary.Base64)。但当我试图创建Base64对象时,它无法识别。@JoeChamberlain Strange。。。听起来很像它不在类路径上。也许可以删除
Base64的导入声明,然后执行CTRL+SHIFT+o以确保选择正确的类。无论如何,听起来好像你想加密(而不是编码)!再来一次。该类被正确导入,我所使用的示例被错误地使用。当我静态地访问类而不是创建一个实例时,它就工作了。是的,我对这个很陌生。我将研究散列。如果我浪费了你的时间,我向你道歉。:)谢谢大家。我最终使用BCrypt0.3散列密码。非常简单,从我所看到的,安全。
import java.io.IOException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Random;
import org.apache.commons.codec.binary.Base64;

public class PasswordEncryption {

    private static Random random = new Random((new Date()).getTime());

    public static String encrypt(String userId) {  
        Base64() encoder = new Base64();
        byte[] salt = new byte[8];
        random.nextBytes(salt);
        return encoder.encode(salt)+
        encoder.encode(userId.getBytes());
    }

    public static String decrypt(String encryptKey) {
        if (encryptKey.length() > 12) {
            String cipher = encryptKey.substring(12);
            BASE64Decoder decoder = new BASE64Decoder();
            try {
                return new String(decoder.decodeBuffer(cipher));
            } catch (IOException e) {
                //  throw new InvalidImplementationException(
                //    "Failed to perform decryption for key ["+encryptKey+"]",e);
            }
        }         
        return null;
    }
}