小编Dan*_*gno的帖子

我如何解析这个字符串:a:10:{1:0; s:7:"default"; i:1; ...?

我该如何阅读这样的字符串?他们的意思是什么?

a:10:{i:0;s:7:"default";i:1;s:8:"failsafe";i:2;s:4:"foaf";i:3;s:4:"ical";i:4;s:2:"js";i:5;s:4:"json";i:6;s:6:"opendd";i:7;s:3:"php";i:8;s:3:"rss";i:9;s:3:"xml";}

我见过很多使用类似字符串的系统,将它存储在数据库中并解析以获取值.我该如何解析它们?

谢谢.

php database deserialization

4
推荐指数
2
解决办法
468
查看次数

Android HTTP请求AsyncTask

我想实现一个类来处理我的应用程序的所有HTTP请求,它基本上是:

  • 获取业务清单(GET);
  • 执行登录(POST);
  • 更新位置(POST).

因此,我将不得不从服务器(JSON)获取结果字符串并将其传递给另一个方法来处理响应.

我目前有这样的方法:

public class Get extends AsyncTask<Void, Void, String> {
    @Override
    protected String doInBackground(Void... arg) {
        String linha = "";
        String retorno = "";

        mDialog = ProgressDialog.show(mContext, "Aguarde", "Carregando...", true);

        // Cria o cliente de conexão
        HttpClient client = new DefaultHttpClient();
        HttpGet get = new HttpGet(mUrl);

        try {
            // Faz a solicitação HTTP
            HttpResponse response = client.execute(get);

            // Pega o status da solicitação
            StatusLine statusLine = response.getStatusLine();
            int statusCode = statusLine.getStatusCode();

            if (statusCode == 200) { …
Run Code Online (Sandbox Code Playgroud)

android http-request

4
推荐指数
1
解决办法
2万
查看次数

为什么 Go 生成的 hmac 哈希值与 PHP 和 JavaScript 不同?

我开始用 Go 编写代码,并尝试通过检查客户端发送的签名来进行简单的请求验证。乍一看一切都很好,但经过几次验证真实请求的测试后,我发现 Go 生成了一个尴尬的哈希值。

\n\n

为了证明Go后端和JavaScript签名之间的不一致,我开发了相同签名方法的PHP版本,它给了我与JavaScript版本相同的结果,所以我的期望是正确的。

\n\n

我为每种语言开发了一个示例测试:GoPHPJavaScript

\n\n

那么,要在 Go 中达到 PHP 和 JavaScript 相同的结果,我应该怎么做呢?

\n\n
\n\n

\n\n
package main\n\nimport (\n    "crypto/hmac"\n    "crypto/sha256"\n    "encoding/base64"\n    "fmt"\n)\n\nfunc main() {\n    data := "My name is Danniel"\n\n    mac := hmac.New(sha256.New, []byte("secret"))\n    mac.Write([]byte(data))\n\n    macSum := mac.Sum(nil)\n    data64 := base64.StdEncoding.EncodeToString(macSum)\n    fmt.Println(fmt.Sprintf("mac: %s | b64: %s", macSum, data64))\n\n    data64 = base64.StdEncoding.EncodeToString([]byte("My name is Danniel"))\n    fmt.Println(fmt.Sprintf("b64: %s", data64))\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

输出

\n\n
mac: 6\xef\xbf\xbd\xef\xbf\xbdq\xef\xbf\xbd\xef\xbf\xbd0\xef\xbf\xbd\xef\xa3\xae\xef\xbf\xbd5\xd0\xb9\xef\xbf\xbd\xef\xbf\xbd|\xef\xbf\xbd\xef\xbf\xbdG\xef\xbf\xbd#0\xef\xbf\xbd\xef\xbf\xbdih | b64: NqzRcf/FMLPvo678NdC58JB8lgOFR+wjMNQDDwSkaWg=\nb64: TXkgbmFtZSBpcyBEYW5uaWVs\n
Run Code Online (Sandbox Code Playgroud)\n\n
\n\n …

cryptography go hmac

1
推荐指数
1
解决办法
1774
查看次数