如何使用PowerBuilder将字符串编码为base64编码算法

How to encode a string to base64 encoding algorithm using PowerBuilder

要求:

我们如何使用powerBuilder实现它。

供参考,上述案例的Java实现如下:

import org.apache.tomcat.util.codec.binary.Base64;
import java.io.UnsupportedEncodingException;
    public String getClientEncoded() throws UnsupportedEncodingException {
        String givenString= "Input_String";
        String bytesEncoded = Base64.encodeBase64String(valueToHash.getBytes("UTF-8"));
        System.out.println("encoded value is " + bytesEncoded);
        return bytesEncoded ;
    }

============================================= ===============

根据 Matt 的回复,从第一个 link 开始使用以下代码:

String ls_valueToBeEncoded
blob lblob

ls_valueToBeEncoded = "realhowto"
lblob = Blob(ls_valueToBeEncoded)
ULong lul_len, lul_buflen
Boolean lb_rtn

lul_len = Len(ablob_data)

lul_buflen = lul_len * 2

ls_encoded = Space(lul_buflen)

lb_rtn = CryptBinaryToString(ablob_data, &
lul_len, CRYPT_STRING_BASE64, &
ref ls_encoded, lul_buflen) // Used ref ls_encoded to get the string. Otherwise, junk characters gets stored in ls_encoded.`
=======================================

Used the below code in Global External Function:
`FUNCTION boolean CryptBinaryToString ( &
Blob pbBinary, &
ulong cbBinary, &
ulong dwFlags, &
Ref string pszString, &
Ref ulong pcchString ) &
LIBRARY "crypt32.dll" ALIAS FOR "CryptBinaryToStringA;Ansi"`

=========================================

根据 Matt 的第一个 link 建议,字符串 "realhowto" 应转换为 "cmVhbGhvd3Rv." 但是当我尝试上面的代码时,我得到了 "cgBlAGEAbABoAG8AdwB0AG8A"

如有任何建议,我们将不胜感激。

查看 this link

确保您也查看评论。

另一种选择is here.

Real 的操作方法是许多 PowerBuilder 技巧的很好参考。

与 Matt 给出的第一个 link 核实。 该解决方案奏效了。 我之前唯一遗漏的是在将原始字符串转换为 blob 时,我们需要通过以下方式进行转换:

String ls_original_string
Blob lblob_test
lblob_test = Blob(ls_original_string, EncodingAnsi!)

blob lblob_test 可以作为参数传递给函数 CryptBinaryToString(...)

我的加密示例也有 Real 示例使用的 API 函数。

http://www.topwizprogramming.com/freecode_bcrypt.html