小编Meh*_*ran的帖子

具有相反密钥角色的非对称密码学

我正在尝试实施软件许可制度以防止盗版。

为此,我需要读取应用程序中的许可证文件,并且我需要确保该文件是由所有者公司编写的。

非对称密码学在实现这一目标方面具有很大的潜力,但也有其他的方式!

非对称加密算法(例如 RSA)为您提供 aPublic key和 a ,Private key其用法如下:

  • 私钥用于解密。

  • 公钥用于加密。

但我需要它们是这样的:

  • 用于加密的私钥。

  • 用于解密的公钥。

一个简单的想法是交换公钥和私钥的角色,但有帖子说在 RSA 中公钥可以从私钥生成,这使得这个想法不切实际。

所以这是我的问题:是否存在密钥角色相反的非对称加密技术?

encryption-asymmetric

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

Spring 何时发回 XSRF-TOKEN set-cookie 响应标头?

标题很好地总结了这一切。我要求应满足的条件,以便 Spring 决定发回Set-Cookie:XSRF-TOKEN=...响应标头。

我可以看到我的很多请求都收到带有此类标头的响应,而实际上不需要它。例如,当我发送 GET 请求时,即使我已经X-XSRF-TOKEN为请求设置了 ,它也会收到带有该标头集的响应。但是对于具有上述请求标头的 POST 请求,Spring 将阻止发回 set-cookie 标头。所以我想知道应该满足什么条件,Spring 才会决定发回一个。

spring csrf spring-security x-xsrf-token

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

为什么`使用System.Linq`为其他库添加了功能

我已经使用C#多年了,但是我已经有点懒得去了解它的所有新功能.也许其中一个主要特征是Linq,我从未理解它的好处.但是没关系,我现在感兴趣的是将using System.Linq语句添加到文件时发生的黑魔法.

最近,我一直使用MongoDBC#,我想检索单个文件出来的数据库.以下是它的完成方式:

var cursor = colletion.FindAs<Entity>(query).SetLimit(1);
var en = cursor.Single<Entity>();
Run Code Online (Sandbox Code Playgroud)

上面的代码Entity从集合中提取一个类型的单个文档.令我惊讶的部分Single是只有在using System.Linq将文件添加到文件时才识别光标的方法.怎么可能?

c# linq

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

防止tsc编译器省略不必要的外部模块

TypeScript中有一个我非常喜欢的功能,那就是使用RequireJs的外部模块,以及编译器不包含导入模块的事实,除非代码中实际需要它们.这是一个例子:

import A = require('./A');
import B = require('./B');

var a = new A();
Run Code Online (Sandbox Code Playgroud)

使用tsc --module amd example.ts它编译上面的代码时,它将转换为:

define(["require", "exports", './A'], function(require, exports, A) {
    var a = new A();
});
Run Code Online (Sandbox Code Playgroud)

正如您所看到的B,生成的代码中没有任何迹象.那是因为B实际上没有使用过.正如我所说的这个功能很棒但现在我有一个场景,我需要包含一些外部模块,即使它们实际上没有在代码中的任何地方使用.

有谁知道怎么做?为了防止任何误解,我不想找到一种完全禁用此功能的方法,仅适用于某些特定模块.

requirejs typescript

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

检查 json 属性的类型

我正在寻找一种方法来验证 PostgreSQL 中 json 变量的类型。这就是我的意思:

get_type('"s"'::josn)  => 'string'
get_type('1'::json)    => 'number'
get_type('2.3'::json)  => 'number'
get_type('null'::json) => 'null'
get_type('[]'::json)   => 'array'
get_type('{}'::json)   => 'object'
Run Code Online (Sandbox Code Playgroud)

我正在寻找该get_type功能。

json postgresql-9.3

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

生成预签名 URL 以上传到 S3 存储桶

我正在尝试为 AWS 上的 S3 存储桶生成一个预先签名的 URL 以上传文件,如下所示:

$ aws s3 presign s3://mybucket/somefolder/
Run Code Online (Sandbox Code Playgroud)

然后我使用该 URL 上传文件:

$ curl "https://mybucket.s3.amazonaws.com/somefolder/?AWSAccessKeyId=***&Signature=***&Expires=***"  --upload-file "./file"
Run Code Online (Sandbox Code Playgroud)

但随后它会打印出一个 XML 错误:

<?xml version="1.0" encoding="UTF-8"?>
<Error>
  <Code>SignatureDoesNotMatch</Code>
  <Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message>
  <AWSAccessKeyId>***********</AWSAccessKeyId>
  <StringToSign>PUT


    ************
    /mybucket/somefolder/</StringToSign>
  <SignatureProvided>**************</SignatureProvided>
  <StringToSignBytes>**************</StringToSignBytes>
  <RequestId>************</RequestId>
  <HostId>************</HostId>
</Error>
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

[更新]

好的,所以我必须在预签名 URL 中指定对象名称。所以我做了,但我仍然面临同样的错误信息:

$ aws s3 presign s3://mybucket/someobject
Run Code Online (Sandbox Code Playgroud)

进而:

$ curl "https://mybucket.s3.amazonaws.com/someobject?AWSAccessKeyId=***&Signature=***&Expires=***"  --upload-file "./file"
Run Code Online (Sandbox Code Playgroud)

我会得到与以前完全相同的错误。为了确保这不是权限问题,我像这样测试了它:

$ aws s3 cp ./file s://mybucket/
Run Code Online (Sandbox Code Playgroud)

并且文件被复制了!有什么建议?

[更新] …

amazon-s3 amazon-web-services pre-signed-url

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

计算并发 Lambda 函数执行的数量

根据AWS文档所述,默认情况下每个账户一次可以执行1000个并发Lambda函数。当然,这是一个软限制,可以根据请求进行更改。

现在,我的问题是如何监控并发 Lambda 函数执行?

我假设这应该(以某种方式)使用 CloudWatch 来完成。在CloudWatch 的Metrics部分中,遵循以下路径:

All > Lambda > Across All Functions
Run Code Online (Sandbox Code Playgroud)

您可以通过名称查找指标ConcurrentExecutions。我押注于这一点,但与此同时,我没有根据我所做的测试得到数字。在我们到达那里之前,图表上显示的该指标的值不是整数,所以我猜我在这里遗漏了一些东西。但那很好。让我告诉你我进行的测试。

我在 EC2 实例上创建了一个简单的 NodeJs 脚本,如下所示:

const AWS = require('aws-sdk');
const https = require('https');

const sslAgent = new https.Agent({
    keepAlive: true,
    maxSockets: 200,
    rejectUnauthorized: true,
});
sslAgent.setMaxListeners(0);

AWS.config.update({
    region: 'us-east-1',
    httpOptions: {
        agent: sslAgent,
    },
});


const lambda = new AWS.Lambda();

function call() {
    return lambda.invoke({
        FunctionName: "test",
        Payload: JSON.stringify({
            wait: 5000,
        }),
    }).promise();
}

(async () => {
  let …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services amazon-cloudwatch aws-lambda

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

为什么我得到的是 CustomOriginConfig 而不是 S3OriginConfig?

在这篇文章之后,我尝试从多个区域提供我的网站的静态内容。

该文章中的 lambda 函数尝试修改此路径中对象的属性:

event.Records[0].cf.request.origin.s3
Run Code Online (Sandbox Code Playgroud)

这是在我的 lambda 函数没有接收到这样的属性的情况下。相反,我得到:

event.Records[0].cf.request.origin.custom
Run Code Online (Sandbox Code Playgroud)

显然,这意味着我收到了一篇CustomOriginConfig文章,等待S3OriginConfig. 我不确定这两个是什么意思,但文章中描述的“编辑源”页面的 UI 与我的完全不同。

文章显示了这一点:

在此输入图像描述

我有这个:

在此输入图像描述

有人可以帮我找出为什么我收到的是 aCustomOriginConfig而不是 吗S3OriginConfig

amazon-web-services amazon-cloudfront

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