RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-200809

Skywave's questions

Martin Hope
Skywave
Asked: 2022-05-14 18:00:31 +0000 UTC

获取 CryptoPro PDF 文件的电子签名数据

  • 0

上传到网站的文件

其中一些是数字签名的

有一个确定此签名数据(序列号、作者、日期)的工作版本:

https://stackoverflow.com/questions/46430367/how-to-retrieve-digital-signature-information-from-pdf-with-php

但如果该文件由 CryptoPro 签名,则会发生未知算法异常。

实际上,脚本从文件中提取出某个签名并以某种方式对其进行解析

$seq = Sequence::fromDER($binaryData);
$signed_data = $seq->getTagged(0)->asExplicit()->asSequence();
$ecac = $signed_data->getTagged(0)->asImplicit(Element::TYPE_SET)->asSet();
$ecoc = $ecac->at($ecac->count() - 1);
$cert = Certificate::fromASN1($ecoc->asSequence());
$tbsCert = $cert->tbsCertificate();

签名看起来像这样

...
312c 302a 0603 5504 030c 23d0 9cd0 b8d0
bdd0 bad0 bed0 bcd1 81d0 b2d1 8fd0 b7d1
8c20 d0a0 d0be d181 d181 d0b8 d0b8 301e
170d 3138 3037 3036 3132 3138 3036 5a17
0d33 3630 3730 3131 3231 3830 365a 3082
0124 311e 301c 0609 2a86 4886 f70d 0109
0116 0f64 6974 406d 696e 7376 7961 7a2e
7275 310b 3009 0603 5504 0613 0252 5531
1830 1606 0355 0408 0c0f 3737 20d0 9cd0
bed1 81d0 bad0 b2d0 b031 1930 1706 0355
0407 0c10 d0b3 2e20 d09c d0be d181 d0ba
d0b2 d0b0 312e 302c 0603 5504 090c 25d1
...

这是发生异常的地方。

我在 Debian 上安装了 CryptoPro,并试图找到一个实用程序来解析这个签名。

也许有人遇到过这个?如何提取签名数据?

pdf
  • 1 个回答
  • 10 Views
Martin Hope
Skywave
Asked: 2021-10-12 20:26:30 +0000 UTC

如何使用覆盖方法的两个特征?

  • 0

有一个存储库,它有一种为更改准备数据的方法

class Repository
{
    protected function prepareSaveData($data, $id = null)
    {
        return $data;
    }
}

并且有 2 个特征覆盖了此方法(您无法阅读它们的作用,它们只是存在并覆盖了该方法)

trait DatedTrait
{
    protected function prepareSaveData($data, $id = null) {
        if ($id) {
            if (array_search('date_update', $this->fields) && !($data['date_update'] ?? null)) {
                $data['date_update'] = date('Y-m-d H:i:s');
            }
        } else {
            if (array_search('date_create', $this->fields) && !($data['date_create'] ?? null)) {
                $data['date_create'] = date('Y-m-d H:i:s');
            }
        }

        return parent::prepareSaveData($data, $id);
    }
}
trait OptionsTrait
{
    protected function prepareSaveData(
        $data,
        $id = null
    ) {
        $options = [];
        if ($id) {
            $item = $this->getItem($id);
            if ($item) {
                $options = json_decode($item['options'], true) ?: [];
            }
        }

        foreach ($this->optionsFields as $fieldname) {
            if (isset($data[$fieldname])) {
                $options[$fieldname] = $data[$fieldname];
            }
        }

        $data['options'] = json_encode($options);

        return parent::prepareSaveData($data, $id);
    }
}

一些代表需要 DatedTrait,一些 OptionsTrait,但一个萝卜需要它们两者,我不能同时使用它们。

这就是我要做的:

class ConcreteRepository extends Repository
{
    use OptionsTrait {
        prepareSaveData as prepareOptionsSaveData;
    }

    use DatedTrait {
        prepareSaveData as prepareDatedSaveData;
    }

    protected function prepareSaveData(
        $data,
        $id = null
    ) {
        $data = $this->prepareDatedSaveData($data, $id);
        $data = $this->prepareOptionsSaveData($data, $id);
        return parent::prepareSaveData($data, $id);
    }
}

但是在这种情况下,只有第一个连接的特征起作用,第二个的方法没有被调用,甚至没有通知。请告诉我,如何解决这个问题?

选择 PS Traits 是因为 您不能使用多重继承,以免生成 DatedRepository、OptionsRepository、DatedOptionsRepository、DatedOptionsExtraFeatureRepository 等类...

php
  • 2 个回答
  • 10 Views
Martin Hope
Skywave
Asked: 2020-11-26 19:21:28 +0000 UTC

使用 CryptoPro 证书通过 ESIA 形成授权签名

  • 1

我们通过 ESIA 设置站点授权。

问题:点击生成的带有签名的链接后,进入授权页面,输入数据,报错“授权错误”,页面地址包含详细信息

error_description=ESIA-007005%3A+The+client+is+not+authorized+to+request+an+access+token+using+this+method

有一台带码头的机器。

安装 docker 容器https://hub.docker.com/r/required/cryptopro

安装了根证书、客户端证书,还有 CryptoPro 的试用密钥。

通过复制 %BE#%D0%9F%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%BA%D0%B0_%D1%86%D0%B5%D0验证的证书链%BF%D0% BE%D1%87%D0%BA%D0%B8_%D1%81%D0%B5%D1%80%D1%82%D0%B8%D1%84%D0%B8%D0%BA %D0%B0% D1%82%D0%BE%D0%B2 )

cryptcp -copycert -thumbprint "$thumbprint" -df tt.cer

在出口处

Certificate chains are checked

ESIA 需要以 UTF8 编码的 PKCS#7 分离签名,然后以 url 安全 base64 编码

谷歌搜索,我发现了这个选项:

csptest -sfsign -sign -detached -base64 -add -alg "GOST12_256" -in message -out sig

文件已签名,我检查

csptest -sfsign -verify -detached -base64 -add -alg "GOST12_256" -in message -signature sig

在出口处:

Detached Signature was verified OK

问题 - 可能是什么问题?在哪里挖?

UPD:有一个服务可以使用相同的证书进行签名,它是用 Java 编写的,并使用其 ESIA 签名进行授权。对比我们的链接和服务链接,我们发现差异仅在于client_secret这一行,即签名处。

криптопро
  • 1 个回答
  • 10 Views
Martin Hope
Skywave
Asked: 2020-09-09 20:22:01 +0000 UTC

通过公共服务授权

  • 7

我正在尝试通过国家服务部门进行授权。网站的连接顺序很明确。目前尚不清楚如何使用证书。

我查看了几个 PHP(例如https://github.com/fr05t1k/esia)和其他语言的实现示例。

我们到处都在谈论证书(1 个文件)、私钥(1 个文件)和私钥的密码(字符串)。

我从中得到了什么:

  • 私钥的密码

  • 一些证书在链接http://esia.gosuslugi.ru/public/esia.zip上公开可用 我知道我只需要其中一个,具体取决于签名的类型。

  • 客户发送的文件(他还在国家服务中心注册了该网站)。

来自客户的文件包含一个带扩展名的文件cer(另一个证书?)和一个文件夹,其中包含多个带扩展名的文件key(header.key、mask.key、primary.key 等)

问题:我如何使用这些数据?我需要什么证书?哪个密钥文件是私钥?还是我需要执行一些操作并从中生成私钥?

php
  • 3 个回答
  • 10 Views
Martin Hope
Skywave
Asked: 2020-07-20 15:49:17 +0000 UTC

生成代码接收功能测试的方法

  • 0

我想测试应用程序:

$I->amOnPage('/');
$I->see('Something');

等等

但问题是:

Call to undefined method site\tests\FunctionalSiteTester::amOnPage

拉了队

codecept build

生成的 cest 文件,但无济于事 - 生成的类中没有必要的方法。

问题是,需要做什么才能让他们到达那里?

功能套件.yml:

actor: FunctionalSiteTester
bootstrap: false
modules:
enabled:
    - \site\tests\Helper\Functional
    - Yii2:
        part: fixtures
        transaction: false
yii2
  • 1 个回答
  • 10 Views
Martin Hope
Skywave
Asked: 2020-03-21 18:01:40 +0000 UTC

在常量类中使用保留字

  • 0

试图使用这些类

class Permits
{
    const PROTECTED = 0;
    const CREATE = 1;
    const UPDATE = 2;
    const DELETE = 3;
}

class MenuPositions 
{
    const DEFAULT = 0;
    const TOP = 1;
    const SIDE = 2;
}

PHP 不发誓。到目前为止没有任何问题。

问题是——威胁是什么?=)

php
  • 1 个回答
  • 10 Views
Martin Hope
Skywave
Asked: 2020-12-19 21:13:57 +0000 UTC

块外文本

  • 0

下午好。

有一个带背景的块。该块包含文本。块大小根据内容扩展。

https://jsfiddle.net/skywave/6zfcb7st/

有必要在不使用JS它的情况下使文本稍微超出块。但同时,使块继续从内容中延伸出来,并将文本锚定到块的顶部。

https://jsfiddle.net/skywave/umqop1qs/(但在这里不起作用)

谢谢你。

PS我试过了margin-bottom: -100px;。没有帮助。

html
  • 2 个回答
  • 10 Views
Martin Hope
Skywave
Asked: 2020-10-25 20:21:34 +0000 UTC

在 Yii2 中使用 sass 组织主题

  • 0

我正在考虑如何为网站制作主题Yii2。从模板创建advanced。

现在在web服务器指向的目录中,有这样一个结构:

_dev/
    sass/
        _global.scss
        _vars.scss
        site.scss
css/
    site.css

一切都_dev/sass/*编译为css/*.

如果不sass 将它放在旁边web,或者直接放入具有以下结构的web目录中,我将如何做themes:

themes/
    classic/
        css/
            mod1/
                mod.css
            mod2/
                mod.css
            theme.css

因此,这些文件theme.css将mod.css覆盖现有样式,或添加新样式。结果,css页面上将连接 3 个文件:

main.css - основные стили
theme.css - изменения для темы
mod.css - изменения для модификации темы

但是sass最好使用带有变量的计数器。例如,在mod.scss我只会存储重新定义的带有颜色和图片的变量。

第一种选择:我css按照.sasscss

第二种选择:我为css. mod.scss 将被编译。我不喜欢这种方法,因为 每个主题中都会有一堆重复的 css(虽然我不会使用它,因为我只编辑 sass 文件......)mod.sasscombine.sass

第三种选择:有Yii2sass、less 等的内置预处理器。AssetBundle以及指定的能力sourcePath,以便框架本身将文件复制到可从 Web 访问的位置。并使用它尝试描述 AssetBundle 中的主题逻辑(而不是通过 config themes),以便仅为活动主题编译必要的文件。(但我还不知道怎么做)

你能告诉我,在你看来,按照计划去做会更好吗?或者也许有人已经实现了类似的东西?感谢您的任何想法。

yii2
  • 1 个回答
  • 10 Views
Martin Hope
Skywave
Asked: 2020-04-25 19:16:42 +0000 UTC

打字时减慢应用程序

  • 1

我有一个将 React 与 Redux 结合使用的应用程序

只要有输入或文本区域的输入,应用程序就会开始变慢。人们在抱怨。

我读到您需要禁用 devtools - 将其关闭。

另外还有关于shoultComponentUpdate优化的建议,但是这里需要每次都更新,因为。每个字母都必须打印出来。

有没有人遇到过类似的问题?应用程序状态的大小会影响这一点吗?应用程序状态由多个 reducer(7-8 个)组合而成。每个 reducer 可以是一个 Immutable.js 对象或一个简单的 js 对象。

OnChange,调用一个方法,将嵌套的React组件向上浮动3-4层。然后调用一个动作,它立即返回一个仅包含名称和值的对象。然后一个 reducer 将其拾取并通过 Immutable.setIn 在一行中更改状态。

一切都很顺利,我不知道在哪里优化。请帮助,谁能。

javascript
  • 2 个回答
  • 10 Views
Martin Hope
Skywave
Asked: 2020-08-09 20:13:48 +0000 UTC

Sublime Text 3 中的 html 缩进问题

  • 1

编辑 html 文件。

您需要输入以下代码:

<div class="lala">
    <p>Text</p>
</div>

困难出现在输入标签的地方<p>。

设想:

1 步

<div class="lala">

2步

<div class="lala">

</div>

3步。设置带缩进的光标(1 个选项卡)

<div class="lala">
    |
</div>

4步。我们开始打字,结果是这样的:

<div class="lala">
<p>Text</p>
</div>

当您输入文本时,缩进会在某处消失。如果你再放一遍 - 那么一切都会被保存。但是每次缩进两次非常繁琐。请告诉我,我该如何解决这个问题?

在此处输入图像描述

html
  • 1 个回答
  • 10 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5