WEB开发网
开发学院手机开发Symbian 开发 Symbian 基于口令的加密(Password_Based_Encrypti... 阅读

Symbian 基于口令的加密(Password_Based_Encryption)

 2010-03-26 15:56:00 来源:WEB开发网   
核心提示:概览存储敏感数据时, 有加密支持而不是让经验不足的安全开发者自己手动写代码,是很重要的. 正确地取得加密方案是很困难的,最好应该留给专家来做这个事情. 为了达到这个目的,Symbian为第3方提供了一个加密库的子集. 因为它们是密码学性的安全, 所以应该用它们来存储敏感数据. 这些代码片断显示了如何安全地存储数据,它们

概览

存储敏感数据时, 有加密支持而不是让经验不足的安全开发者自己手动写代码,是很重要的. 正确地取得加密方案是很困难的,最好应该留给专家来做这个事情. 为了达到这个目的,Symbian为第3方提供了一个加密库的子集. 因为它们是密码学性的安全, 所以应该用它们来存储敏感数据. 这些代码片断显示了如何安全地存储数据,它们只能通过口令(password)来提取.

第1个代码片断 用口令 (password)加密一个文本块,并写入到流(stream).

第2个代码片断 是第1个 代码片断的逆过程, 给定口令和流, 已加密的数据 将被揭密,返回明文

API注解

基于口令的加密API提供一个对象来隐藏加密功能. 这就是CPBEncryptElement, 选择默认的加密算法,安装不同的向量(vectors)来确认数据和口令被加密成可接受的标准.

这个元素提供两个子元素,一个执行加密,另外一个执行解密. 另外,为了提供加密, 这个元素也提供一个方法,允许数据被串行化到一个流, 已经从流(stream)中提取.

先决条件

要先安装加密API

源代码

void CExampleStubAppUi::EncryptDataL(const TDesC& aPassword, const TDesC8& aPlainTextBlob, RWriteStream& aStream)

{

const TPtrC8 passwordPtr(REINTERPRET_CAST(const TUint8*, aPassword.Ptr()), aPassword.Length() * sizeof(TText));

// create a new element

const TPBPassword encryptionKey(passwordPtr);

CPBEncryptElement* element = CPBEncryptElement::NewLC(encryptionKey);

// create a new encryptor object based on the encryption data in the element

CPBEncryptor* encrypter = element->NewEncryptLC();

// allocate enough space to hold the encrypted text

// and then encrypt the text

HBufC8* ciphertext = HBufC8::NewLC(encrypter->MaxFinalOutputLength(aPlainTextBlob.Length()));

TPtr8 ciphertextPtr = ciphertext->Des();

encrypter->ProcessFinalL(aPlainTextBlob, ciphertextPtr);

// finally write out the encryption data

const CPBEncryptionData& header = element->EncryptionData();

1 2 3  下一页

Tags:Symbian 基于 口令

编辑录入:coldstar [复制链接] [打 印]
赞助商链接