首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Java-SE加密代码移植到BlackBerry

将Java-SE加密代码移植到BlackBerry
EN

Stack Overflow用户
提问于 2010-07-07 17:53:01
回答 2查看 1K关注 0票数 0

我有以下加密/解密例程,需要将它们移植到我的BlackBerry项目中。你能帮我开始吗?

代码语言:javascript
复制
import javax.crypto.*;
import javax.crypto.spec.*;
import java.io.*;
import java.util.zip.CRC32;
import java.util.zip.Checksum;
import java.util.zip.Inflater;
import java.util.zip.InflaterInputStream;

 public String EncryptData(String data, String skey) throws Exception {      
    String encryptedData = "";        

    try{
       byte [] bData = data.getBytes();
       String alg = "AES/ECB/NoPadding"; 
       SecretKey key = new SecretKeySpec(skey.getBytes(), alg.replaceFirst("/.*", "")); 
       Cipher cipher = Cipher.getInstance(alg);
       cipher.init(Cipher.ENCRYPT_MODE, key);
       byte[] encoded = cipher.doFinal(bData);          
       encryptedData = bytesToHex(encoded);
    }
    catch(Exception e){
        throw e;
    }
    return encryptedData;
}



public String DecryptData(String hexString, String skey) throws Exception {

    String decryptedData = "";
    try{
       byte [] bData =  convToBinary(hexString);

       String alg = "AES/ECB/NoPadding";            
       SecretKey key = new SecretKeySpec(skey.getBytes(), alg.replaceFirst("/.*", ""));           
       Cipher cipher = Cipher.getInstance(alg);
       cipher.init(Cipher.DECRYPT_MODE, key);
       byte[] decoded = cipher.doFinal(bData);
       decryptedData = new String(decoded);
    }
    catch(Exception e){
        throw e;
    }
    return decryptedData;
}
EN

回答 2

Stack Overflow用户

发布于 2010-07-07 19:33:34

我建议您浏览一下您正在使用的JDE的应用程序接口文档,特别是您可能对net.rim.device.api.crypto包最感兴趣。

net.rim.device.api.crypto.Crypto也可能是一个值得研究的类,因为它包含用于加密和解密的静态方法。

票数 3
EN

Stack Overflow用户

发布于 2010-07-09 15:16:40

设法让它工作起来。

代码语言:javascript
复制
byte[] keyData = keyString.getBytes();

    AESKey key = new AESKey(keyData);
    NoCopyByteArrayOutputStream out = new NoCopyByteArrayOutputStream();
    AESEncryptorEngine engine = new AESEncryptorEngine(key);
    BlockEncryptor encryptor = new BlockEncryptor(engine, out);
    encryptor.write(data, 0, data.length);
    int finalLength = out.size();

    byte[] cbytes = new byte[finalLength];
    System.arraycopy(out.getByteArray(), 0, cbytes, 0, finalLength);
    encryptedData = bytesToHex(cbytes);
    return encryptedData;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3193665

复制
相关文章

相似问题

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