SimpleCrypto.encrypt不工作的星系s4即果冻豆

时间:2013-06-06 05:29:59

标签: android

我的应用程序不适用于galaxy s4,即果冻豆。 我只是使用SimpleCrypto.encrypt方法将一些数据保存到数据库中。

让我尝试使用SimepleCrypto.decrypt方法检索此数据。但我是 没有获取数据,它打印为null。

任何人都可以帮助我为什么会遇到这个问题。因为它在s2和s3上工作正常,但在 s4它没有按预期工作。

public long insertEntry(DeviceInfo _myObject) {
    ContentValues contentValues = new ContentValues();
    contentValues.put(KEY_NAME, _myObject.getName());
    contentValues.put(KEY_ADDR, _myObject.getAddr());
    try {
        contentValues.put(KEY_ADMINPASSWD, SimpleCrypto.encrypt(SecuRemote.masterpassword,_myObject.getAdminPasswd()));
        contentValues.put(KEY_BTPIN, SimpleCrypto.encrypt(SecuRemote.masterpassword,_myObject.getBtPin()));
    } catch (Exception e) {
    }
    String alias = _myObject.getAlias();
    if((alias == null) || (alias.equals(""))) {
        alias = _myObject.getName();
    }       
    contentValues.put(KEY_ALIAS, alias);
    String type = _myObject.getType();
    if(type == null) {
        type = "";
    }       
    contentValues.put(KEY_TYPE, type);
    //SecuRemote.LOG("DEBUG: added device entry: " + _myObject.toString());
    return db.insert(DATABASE_TABLE, null, contentValues);
}

检索我正在使用的方法,该方法将解密数据库中的数据。

public DeviceInfo getEntry(String addr) 
{
        if(SecuRemote.superDebug) SecuRemote.LOG( "DeviceInfo getEntry(" + addr + ")");

    DeviceInfo rec = new DeviceInfo();

Cursor cursor = db.query(true, DATABASE_TABLE,new String[] {KEY_ID, KEY_NAME, KEY_ADDR, KEY_ADMINPASSWD, KEY_BTPIN, KEY_ALIAS, KEY_TYPE},KEY_ADDR + "= '" + addr + "'",null, null, null, null, null);

        if((cursor.getCount() == 0) || !cursor.moveToFirst()) 
               {        
            SecuRemote.LOG( "No device record found for addr: " + addr);
            cursor.close();
            return null;
        }

        rec.setName((cursor.getString(NAME_COLUMN)));
        try {
            rec.setAdminPasswd(SimpleCrypto.decrypt(SecuRemote.masterpassword, new String(cursor.getString(ADMINPASSWD_COLUMN))));
            rec.setBtPin(SimpleCrypto.decrypt(SecuRemote.masterpassword, new String(cursor.getString(BTPIN_COLUMN))));
        } catch (Exception e) {
            SecuRemote.LOG("Error decrypting device secret passwords");
        }
        rec.setAddr((cursor.getString(ADDR_COLUMN)));
        rec.setVersion(SecuRemote.getPreference("version_"+rec.getAddr(), context));
        rec.setAlias((cursor.getString(ALIAS_COLUMN)));
        rec.setType((cursor.getString(TYPE_COLUMN)));
        SecuRemote.LOG("Record found");
        cursor.close();
        return rec;
    }

0 个答案:

没有答案