Simple cryptography in Dynamics AX 2009

There are methods in AX which allow to encrypt and decrypt data easily. Those methods are WinAPIServer::cryptProtectData() for encryption and WinAPIServer::cryptUnProtectData() for decryption. As input and output parameters these methods use CryptoBlob extended data type, which is a container. However, this is not an arbitrary container. It should contain only bytes (integers in the range 0-255). There are methods on the Global class which allow to convert from and to CryptoBlob type, for example, Global::binary2cryptoblob() and Global::cryptoblob2binary().

Sample usage:

public static void Jimmy_cryptoTest()
{
    str             text = "xieyufan";
    str             decryptedText;
    CryptoBlob      CryptoBlobed;
;
    //字符串加密后变成数字类型
    CryptoBlobed = WinAPIServer::cryptProtectData(str2cryptoblob(text));
    global::conview(CryptoBlobed);
    
    //数字类型解密后变成字符串类型
    decryptedText = global::cryptoblob2str(WinAPIServer::cryptUnProtectData(CryptoBlobed));
    info("" + decryptedText);
}
posted @ 2010-11-25 14:26  Fandy Xie  Views(488)  Comments(0Edit  收藏  举报