gpt4 book ai didi

java - 转换明文以执行 Elgamal 加密

转载 作者:太空宇宙 更新时间:2023-11-04 13:47:51 26 4
gpt4 key购买 nike

嗨,我正在用 java 编写一个程序来测试 elgamal 加密的变体,但是我的问题不是加密/解密链本身,而是如何对给定的输入执行操作:文本文件。我有一个文本文件,其中包含一些单词(例如内容可以是:“Hello world,这是一个测试”),我需要对它们执行数字运算,如下所示:

ciphertext= (message * y) mod p

其中yp是两个biginteger。我尝试了这个转换链:(一次读取一个字符串):

String->Hexadecimal->Decimal

然后执行加密操作,然后进行逆操作:

Decimal->Hexadecimal->String

但这并不总是有效(我目前正在调查这个问题)。 已修复。

我的问题是,有更好的方法吗?我正在阅读有关字节数组的内容,但我不确定如何使用它们。

[如果需要,我可以发布加密/解密链的示例]

最佳答案

BigInteger 有 constructor以字节数组作为参数。

使用(例如)UTF-8 编码,任何字符串都可以无损地转换为字节数组:

byte[] bytes = string.getBytes(StandardCharsets.UTF_8); 

将两者结合起来,您就可以轻松地将 String 转换为 BigDecimal。

对于相反的操作,使用 BigInteger.toByteArray() ,然后new String(bytes, StandardCharsets.UTF_8)

关于java - 转换明文以执行 Elgamal 加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30647542/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com