首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用XTEA的Java加密

使用XTEA的Java加密
EN

Stack Overflow用户
提问于 2009-10-15 22:07:59
回答 3查看 4.6K关注 0票数 0

如何在Java中使用XTEA方案加密字符串?

谢谢

代码语言:javascript
复制
    public class run {
        public static void main(String[] args) throws Exception{

            XTEA2 x= new XTEA2("keykey");
            String s = "hi there";
            byte[] theBytes = s.getBytes();


            System.out.println("Plaintext: " + new String(theBytes));

            x.encrypt(theBytes); //theBytes now contains the encrypted data

            System.out.println("Crypo Text: " + new String(theBytes));


            x.decrypt(theBytes); //theBytes now contains the decrypted data

            System.out.println("Decrypted: " + new String(theBytes));
            String str = new String(theBytes); //decrypted String




        }
    }
|

如果填充得当,则可以正常工作。谢谢你们

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-10-15 22:28:17

首先,您需要此方法将字符串转换为字节数组:

代码语言:javascript
复制
 public static byte[] convertStringToByteArray(String stringToConvert) {
    byte[] theByteArray = stringToConvert.getBytes();

    return theByteArray;
}

然后,使用db4o项目中的this code,并调用它的方法,如下所示:

代码语言:javascript
复制
byte[] theBytes = convertStringToByteArray("the string");
encrypt(theBytes); //theBytes now contains the encrypted data

用于加密,以及

代码语言:javascript
复制
decrypt(theBytes); //theBytes now contains the decrypted data
String str = new String(theBytes); //decrypted String
票数 1
EN

Stack Overflow用户

发布于 2009-10-15 22:14:30

在谷歌上搜索后,我发现可以使用BlockCipher接口手动实现XTEA方案。

H2 Database使用这个接口实现了一个版本,您可以在这里找到:XTEA.JAVA on code.google.com

这里的问题是,您需要修改加密/解密( byte[],byte[],int)方法以满足您的需要。

票数 2
EN

Stack Overflow用户

发布于 2009-10-15 22:10:36

这一点:

http://www.google.com/search?q=java+encryption+XTEA给了我这个

http://en.wikipedia.org/wiki/XTEA,它最终给了我这个:

http://code.google.com/p/h2database/source/browse/trunk/h2/src/main/org/h2/security/XTEA.java

我想这就是你想要的

编辑

我不知道你是否已经读过这篇文章了,但这篇文章已经开始了。

Java security API提供了加密所需的architecture

你可以使用Cipher.getInstace()方法得到一个密码:

喜欢

代码语言:javascript
复制
Cipher c = Cipher.getInstance("DES/CBC/PKCS5Padding");

但是缺省情况下,java不为XTEA提供密码。

但是,您可以注册your own

我从来不需要遵循完整的流程,我猜你必须完成一些接口并注册你的实现。

如果您需要这么做,您可以使用前面提到的实现。它是H2 DB所使用的。

我希望这能帮到你。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1575401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档