我正在为一个项目实现 3Des 加密算法。
我使用此代码作为示例:
http://www.java2s.com/Code/Java/Security/TripleDES.htm
它工作正常,但我需要发送和接收字符串,但我这样做是为了将信用卡号保存在数据库上,所以我需要使用长数字,而不是字符串。
有可能这样做吗?
我必须使用特殊的键或者我必须对返回值进行一些转换? 我正在寻找最好、最正确的解决方案。
我知道,也许我的问题有点愚蠢,但我迷路了。
感谢您的回答,并对我糟糕的英语表示歉意
最佳答案
您需要byte[]
进行加密,并且从long开始您可以生成byte[]
public static byte[] toByteArray(long value)
{
ByteBuffer bb = ByteBuffer.allocate(8);
return bb.putLong(value).array();
}
public long toLong(byte[] bytes) {
ByteBuffer buffer = ByteBuffer.allocate(8);
buffer.put(bytes);
return buffer.getLong();
}
使用这个byte[]
进行加密和解密。
另请注意,信用卡号码太长确实不好。
关于java - 我正在 Java 中实现长数字的 3Des 加密算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12846273/