java - 我正在 Java 中实现长数字的 3Des 加密算法

标签 java string 3des

我正在为一个项目实现 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/

相关文章:

java - 为什么java有StringBuilder或者StringBuffer?

java - 在java中评估两个字符串

java - 空字符串的 Optional 实现

encryption - 如何使用 DUKPT 加密在读卡器中生成密文?

java - JSP 页面无法识别我的数据类型

java - 在 Selenium WebDriver 中设置带有路径值的 cookie

ios - iOS 中使用 ECB 的 3DES 加密/解密

java - 原始赋值的正确思考方式

java - 设置 MySql wait_timeout session 变量