crypto 乱码_base64编码加密解密程序,输出有乱码,为什么?

base64.h编码头文件用的这个直接复制的:http://www.coolib.cn/show.asp?i=5513699&p=22然后想借用这个头文件处理加密解密,接口定义为:interfaceICrypto:IDispatch{[id(1),helpstring(...

base64.h编码头文件用的这个直接复制的:http://www.coolib.cn/show.asp?i=5513699&p=22

然后想借用这个头文件处理加密解密,接口定义为:

interface ICrypto : IDispatch

{

[id(1), helpstring("method encrypt")] HRESULT encrypt([in] BSTR bstrPlainText, [in] BSTR bstrPassword, [out, retval] BSTR *vCipherText);

[id(2), helpstring("method decrypt")] HRESULT decrypt([in] BSTR vCipherText, [in] BSTR bstrPassword, [out, retval] BSTR *bstrPlainText);

};

接口实现:

STDMETHODIMP CCrypto::encrypt(BSTR bstrPlainText, BSTR bstrPassword, BSTR *vCipherText)

{

// TODO: Add your implementation code here

_bstr_t b = bstrPlainText;

char* Text = b;

char m_strUserName[255];

Base64_Encode(Text, m_strUserName, strlen(Text));

*vCipherText = CComBSTR(m_strUserName);

return S_OK;

}

STDMETHODIMP CCrypto::decrypt(BSTR vCipherText, BSTR bstrPassword, BSTR *bstrPlainText)

{

// TODO: Add your implementation code here

char m_strUserName[255];

_bstr_t b = vCipherText;

char* Text = b;

Base64_Decode(Text, m_strUserName, strlen(Text));

*bstrPlainText = CComBSTR(m_strUserName);

return S_OK;

}

ASP调用测试:

Set mDll = Server.CreateObject("CryptoProj.Crypto")

Dim a

a = mDll.encrypt("test des plaintext!","DFlt4DF")

REsponse.Write(a)

b = mDll.decrypt(a,"DFlt4DF")

REsponse.Write(b)

%>

输出为:dGVzdCBkZXMgcGxhaW50ZXh0IQ==test des plaintext!烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫锑?nQ_w?硗

为什么会有一串乱码呢?前面是对的,要怎么改才是正确的输出呢?

展开

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值