相关疑难解决方法(0)

如何将JSON数组作为URL中的参数传递

我要求在Web服务调用中将一些值从移动设备传递到服务器,因此我打算以JSON格式传递所有值,如下所示

{
    "nameservice": [
        {
            "id": 7413,
            "name": "ask"
        },
        {
            "id": 7414,
            "name": "josn"
        },
        {
            "id": 7415,
            "name": "john"
        },
        {
            "id": 7418,
            "name": "R&R"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

以下是我的服务电话

@RequestMapping("/saveName")
@ResponseBody
public String saveName(String acc)
{jsonObject = new JSONObject();
    try
    {
    );
    System.out.println(acc);
    jsonObject.accumulate("result", "saved ");
    }
    catch(Exception e)
    {
        e.printStackTrace();jsonObject.accumulate("result", "Error Occured ");
    }
    return jsonObject.toString();
}
Run Code Online (Sandbox Code Playgroud)

我试图通过这种方式调用上述服务

localhost:8080/service/saveName?acc={ "nameservice": [ { "id": 7413, "name": "ask" }, { "id": 7414, "name": "josn" }, { "id": 7415, "name": …
Run Code Online (Sandbox Code Playgroud)

java spring json web-services

27
推荐指数
3
解决办法
15万
查看次数

PHP通过URL发送加密数据

我正在尝试通过url将加密数据发送到另一个站点(使用file_get_contents("anotherUrl.php?hash=$encryptedString").问题是,有时,加密包含一些特殊字符,如+,这会导致解密失败.

这是我的加密/解密方法:

public function encrypt($string, $key)
{
    return base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($key), $string, MCRYPT_MODE_CBC, md5(md5($key))));
}

public function decrypt($encrypted, $key)
{
    return rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($key), base64_decode($encrypted), MCRYPT_MODE_CBC, md5(md5($key))), "\0");
}
Run Code Online (Sandbox Code Playgroud)

这是一个包含a的加密字符串示例+,我猜这会导致解密失败.

oWCrVPaS+5GbxcQFc0fulUk/zRAkDD60av4zlPiWskE=

任何想法我应该如何解决这个问题?我试图做urlencode()urldecode()哈希,但这似乎也导致加密打破.有没有办法更改加密算法,使其只返回url安全字符?

php encryption base64 mcrypt url-encoding

9
推荐指数
2
解决办法
5万
查看次数

使用AES 256加密和解密查询字符串值

我使用以下代码来加密/解密查询字符串并将其从一个页面传递到另一个页面.结果输出缺少'+'(请参阅问题的底部).我可以做些什么来确保'+'通过,因为我已经在使用urlencode/urldecode?

//加密页面

    protected void Page_Load(object sender, EventArgs e)
    {
        string text = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";            
        Response.Write("256:" + Decrypt256(Encrypt256(text)));
        Response.Write(string.Format("<br/><a href=\"decrypt.aspx?p={0}\">{0}</a>", HttpUtility.UrlEncode(Encrypt256(text))));            
    }


    private const string AesIV256 = @"!QAZ2WSX#EDC4RFV";
    private const string AesKey256 = @"5TGB&YHN7UJM(IK<5TGB&YHN7UJM(IK<";


    private string Encrypt256(string text)
    {            
        // AesCryptoServiceProvider
        AesCryptoServiceProvider aes = new AesCryptoServiceProvider();            
        aes.BlockSize = 128;
        aes.KeySize = 256;
        aes.IV = Encoding.UTF8.GetBytes(AesIV256);
        aes.Key = Encoding.UTF8.GetBytes(AesKey256);
        aes.Mode = CipherMode.CBC;
        aes.Padding = PaddingMode.PKCS7;

        // Convert string to byte array
        byte[] src = Encoding.Unicode.GetBytes(text);

        // encryption
        using (ICryptoTransform encrypt = aes.CreateEncryptor())
        { …
Run Code Online (Sandbox Code Playgroud)

c# asp.net encryption cryptography

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

查询字符串中的Base64编码参数出现问题

我正在将Web应用程序中的链接发送到用户邮件(用于确认用户注册),如下所示:

<a target="_blank" href="http://localhost:2817/ConfirmRegistration?confirm=Y0tcmGepe7wjH7A1CT1IaA==">
http://localhost:2817/ConfirmRegistration?confirm=Y0tcmGepe7wjH7A1CT1IaA==
</a>
Run Code Online (Sandbox Code Playgroud)

但是Chrome会警告此消息:

Chrome讯息

查询字符串是否无效?我该如何解决?

顺便说一句:
我的应用程序在C#和MVC3中

html hyperlink c#-4.0 asp.net-mvc-3

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

使用base64编码的字符串URL

可能重复:
在URL中传递base64编码的字符串

我正在创建一个将发送给用户的网址.用户然后单击该URL,此URL告诉我该用户是谁.

所以我使用base64编码添加到此链接的所有数据.然而,当用户点击链接时,他被重定向到404页面,因为编码的网址中有"/",而zend框架路由器找不到任何路由.

我有什么方法可以压制'/'?我试过htmlentities但它没用.

php url base64 zend-framework

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

Php openSLL 加密 - 防止特殊字符

我想创建和加密获取在 url 中传递的变量和异步调用

例如:

$textToEncrypt = "Hello World";
$encryptionMethod = "AES-256-CBC";
$secretHash = "cVb67YtfAz328oOikl96vBn";
$iv = "adfrf54dmnlo09ax";
$encryptedText = openssl_encrypt($textToEncrypt,$encryptionMethod,$secretHash, 0, $iv);
Run Code Online (Sandbox Code Playgroud)

结果是:W2p0S2qlSierJnIcA/AM3g==

有一些特殊字符, == 总是在最后。我要防止这种情况!如何仅输出 0-9 和 AZ 和 az 字符?

谢谢

php encryption

5
推荐指数
2
解决办法
4659
查看次数

将urlencoded URL作为参数传递给CakePHP上的控制器/操作

我在CakePHP上相当新,因为有一些基本的东西,我曾经用Zend Framework做的,我用Cake打败了.

我正在开发一个项目,我必须将命名参数传递给控制器​​/动作.设置路由并传递参数非常简单,我的问题是当参数是urlencoded网址时.

例如:http://www.cakephp.com/controller/action/http%3A%2F%2Fwww.google.com无论控制器和操作设置如何,都会抛出404,但是传递/ controller/action/http: //www.google.com以某种方式工作,唯一的问题是它将http标识为命名参数.换句话说,如果我做/controller/action?url=http://www.google.com它会工作.

我用于此的工作是将值作为base64编码的字符串传递,但它带来了一些限制.例如,如果它是API,则无法保证使用API​​的系统可以将base64编码为字符串.

无论如何,最好的解决方案仍然是将url编码的字符串传递给命名参数.问题是,为什么CakePHP不接受urlencoded字符串作为参数,为什么它会抛出404?

在此先感谢所有人.

string cakephp param urlencode

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

在JavaScript中使用两种方法散列JSON字符串以在URL中使用

我想采用JSON字符串并对其进行加密/散列/编码,以便我可以将其放入URL中,以便它类似于下面所示的内容:

var stringToEncode = JSON.stringify({foo: 'baz', bar: [1,2,3,4,5], baz: {fizzle: 'buzz'}});
Run Code Online (Sandbox Code Playgroud)

'www.myrandomurl.com/someurl/123fas234asf1543rasfsafda'

然后我想采用加密/散列/编码的字符串,并将其解码回原始的JSON字符串,以便我可以使用它绑定到单页AngularJS应用程序上的各种元素.

JSON字符串的内容不敏感,因此不需要安全性或复杂的散列.唯一的条件是它需要是一个"URL/URI'安全'"字符串,为了虚荣目的进行哈希处理,如上所示.

我对加密/编码的知识有限,但是我想过简单地将字符串编码为Base64并再次解码.

这是最好的方法吗?如果不是,有什么更好的方法?

javascript encryption url base64 json

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

如何使用参数传递URL作为参数?

我正在尝试将URL作为参数传递,但该URL也有参数.当然,这些参数很重要,必须传输和正确解释.

例如:http: //example.com/myclicktrackingscript.php?source = sidebar&url = http://example.com/redirect_to.php?site = site1

(是的,我知道,我可以在一个文件中单击跟踪并重定向所有,但在某些特定情况下,我不能:有时我需要传递带参数的任何URL作为参数)

到目前为止,我已经使用了URL重写:http: //example.com/redirect_to.php?site = site1 => http://example.com/redirect/site1/

..但这不是很方便(太多需要更多灵活性的具体情况)

有没有更好的方法呢?

我的猜测可能是散列参数URL:

例如:http://example.com/myclicktrackingscript.php? source = sidebar $ url = REJREJ12333232rerereE

......但是如何正确地"去除"它呢?

我从来没有使用过这样的技术,有没有关于如何做的任何例子/提示/建议?

谢谢

php get

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

Crypto-js 和 Express 如何防止 crypto-js 在加密 ID 中添加斜杠以防止服务器将其读取为新的子路由?

我正在加密用户 ID,crypto-js通过 url 发送它,如下所示,以便用户在单击时验证它:

http://localhost:3000/api/customer/activate/U2FsdGVkX1DXzzLuf9TgBf31Mc2V/QBVAN05PovlNM

这是加密的用户 ID:

U2FsdGVkX1DXzzLuf9TgBf31Mc2V/QBVAN05PovlNM

使用加密js encrypt

crypto.AES.encrypt(term.toString(), config.CRYPTO_PASSPHRASE_RES).toString(crypto.enc.Utf8)
Run Code Online (Sandbox Code Playgroud)

当我运行 API 时,它返回route not found,当我/从加密的用户 ID 中删除时,它起作用了。

如何防止 crypto-js 添加/到加密 ID 中?

encryption node.js express cryptojs

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

base64编码url安全吗?

我正在使用node.bcrypt.js哈希返回node.js中的十六进制数字作为密码重置令牌.

user.reset_password_token = require('crypto').randomBytes(32).toString('hex'
);
Run Code Online (Sandbox Code Playgroud)

在我在网址中传递令牌之前,我是否还应该对该令牌进行base64编码(即:链接重置电子邮件)?

这样做有什么好处吗?

我似乎记得base64编码可以包含正斜杠,这会弄乱路径:

   var token = user.reset_password_token;

   //is there any benefit to doing base64 encoding?
   var encoded_token = new Buffer(token).toString('base64');

   var reset_link = 'http://example.com/reset/'+ encoded_token;
   sendResetLink( reset_link );
Run Code Online (Sandbox Code Playgroud)

url base64 node.js

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

TextEncodings.Base64Url.Decode与Convert.FromBase64String

我正在创建一个将生成JWT令牌的方法。该方法的一部分从我的web.config中读取一个值,该值用作“秘密”,用于生成用于创建JWT令牌签名的哈希。

<add key="MySecret" value="j39djak49H893hsk297353jG73gs72HJ3tdM37Vk397" />
Run Code Online (Sandbox Code Playgroud)

最初,我尝试使用以下命令将“秘密”值转换为字节数组。

byte[] key = Convert.FromBase64String(ConfigurationManager.AppSettings["MySecret"]);
Run Code Online (Sandbox Code Playgroud)

但是,到达此行时引发了异常。

输入内容不是有效的Base-64字符串,因为它包含非base 64字符,两个以上的填充字符或填充字符中的非法字符。

因此,我查看了OAuth代码,然后使用了另一种方法将base64字符串更改为字节数组

byte[] key = TextEncodings.Base64Url.Decode(ConfigurationManager.AppSettings["MySecret"]);
Run Code Online (Sandbox Code Playgroud)

此方法没有问题。在我看来,他们在做同样的事情。将Base64文本值更改为字节数组。但是,我一定会丢失一些东西。为什么Convert.FromBase64String失败并TextEncodings.Base64Url.Decode起作用?

arrays base64 character-encoding jwt

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

Security :: encrypt()方法在CakePHP 3.2中返回无效字符

Security在CakePHP 3.2中使用实用程序进行加密和解密.我打电话的时候

Security::encrypt('string', 'key') //密钥长度为32或更多

在字符串上的方法,它返回带有一些无效字符的加密字符串,如下所示:

8e88c050ff20cb12984bf1af24b11fc7ada198082c67d6b3da7170572d5bcd54plp21ķ;ܝ%N

我想用这个字符串url.但由于存在一些无效字符,因此无法正常工作.

现在我想避免这些角色.有没有办法避免这些角色?

php security encryption cakephp

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