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

时间:2018-02-14 18:16:15

标签: java powerbuilder

要求:

  • 给出一个字符串
  • 我们需要使用上面给出的字符串生成Base64编码的字符串。

我们如何使用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的回复,使用以下代码来自第一个链接:

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建议的第一个链接,字符串"realhowto"应转换为"cmVhbGhvd3Rv." 但是当我尝试上面的代码时,我得到了"cgBlAGEAbABoAG8AdwB0AG8A"

任何建议将不胜感激。

3 个答案:

答案 0 :(得分:3)

查看this link

请务必查看评论。

另一个选项is here.

Real's How To是许多PowerBuilder技巧的很好的参考。

答案 1 :(得分:1)

我的加密示例还包含Real的示例所使用的API函数。

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

答案 2 :(得分:0)

使用Matt给出的第一link进行检查。 解决方案有效。 我之前唯一遗漏的是将原始字符串转换为blob时,我们需要通过以下方式进行转换:

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

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