小编Tob*_* P.的帖子

在浏览器中使用javascript进行openssl解密

我正在寻找一种方法来客户端解码RSA和openssl编码的消息.

想法:
特殊数据仅在服务器上使用公钥加密存储,以便没有人能够看到真实数据 - 即使在服务器黑客的情况下也是如此.
然后,adminforce中的管理员可以通过将这些文件传输到浏览器来"打开"这些文件,并且一些javascript代码将对数据进行解码,以便它永远不会在服务器上解密,只能在安全的客户端上解密.
我真的需要它在浏览器中使用自定义javascript解码direclty,因为这些数据随后被js中的某些算法客户端使用.

问题:
javascript中似乎没有openssl库,或者我还没找到.虽然RSA有几个纯js实现,但它们只实现了普通的RSA算法,但是普通的RSA不能用作块密码并且有一些攻击如"选择明文攻击".
有没有人知道openssl解码的javascript实现,或firefox/chrome的插件,它将这些功能添加到文档中?或者javascript中内置的任何其他安全的非对称加密?

javascript openssl cryptography rsa public-key-encryption

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

替换ckeditor内容并添加撤消历史条目

我有一个需要实现的基本功能,但找不到有关如何执行此操作的信息:我只想用自定义标记替换 CKEditor 的所有内容并添加撤消历史记录条目,以便您可以返回到替换之前的版本。

  1. 因此,替换内容的基本命令是,editor.setData但它不会添加撤消历史记录,包装调用的条目editor.model.change也不会改变行为。
  2. 然后,文档深处有关于如何向编辑器添加(但不是替换)自定义 html 的信息,该编辑器正在添加撤消历史记录条目:

    this.editor.model.change((writer) => {
          const html = '<p>aaa</p><ul><li>huu</li><li>zzzz</li></ul><p>ssss</p>'
          const viewFragment = this.editor.data.processor.toView(html);
          const modelFragment = this.editor.data.toModel(viewFragment);
          this.editor.model.insertContent(modelFragment);
          this.editor.model.insertContent(modelFragment);
          this.editor.editing.view.scrollToTheSelection();
    });
    
    Run Code Online (Sandbox Code Playgroud)

那么如何替换编辑器的内容添加撤消历史条目呢?我只能满足其中一项要求,但不能同时满足两项要求。

javascript ckeditor ckeditor5

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

在 ckeditor5 下拉项上注册点击侦听器

我目前正在尝试为CKEditor 5编写一个插件来支持自动翻译。我能够在文档中找到如何编写插件以及如何创建下拉菜单。

但在文档中没有提及(或者我错过了)如何获知有关单击值的信息:

  • 打开下拉列表的按钮有一个执行处理程序,但如何注册一个监听器来单击其中一个值?
  • 我可以为我的项目分配一个id或类似的符号来识别下拉列表右侧元素的点击吗?

这是我根据文档构建的代码:

class Translation extends Plugin {
    init() {
        this.editor.ui.componentFactory.add('translate', (locale) => {
            const dropdownView = createDropdown(locale);
            dropdownView.buttonView.set({
                icon: languageIcon,
                label: 'Translate',
                tooltip: true,
            });

            const items = new Collection();
            items.add({
                id: 'en', // how to assign id ???
                type: 'button',
                model: new Model({
                    withText: true,
                    label: 'English'
                }),
            });
            items.add({
                id: 'es', // how to assign id ???
                type: 'button',
                model: new Model({
                    withText: true,
                    label: 'Spanish'
                }),
            });
            addListToDropdown(dropdownView, …
Run Code Online (Sandbox Code Playgroud)

ckeditor ckeditor5

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

nginx 服务器对不同的子文件夹使用多个 fastcgi 后端

StackOverflow 上有多个问题如何使用具有不同 fastcgi 后端的子文件夹或类似的问题但没有任何工作正常 - 经过几个小时的尝试和阅读文档(可能缺少一个小细节)我放弃了。

我有以下要求:

  • 在 php 5.6 应用程序上/运行(fastcgi 后端127.0.0.1:9000
  • /crmphp 7.0 应用程序上运行,它必须相信它正在运行/(fastcgi 后端127.0.0.1:9001
  • 事实上还有很少的后端,但是有了这两个我可以自己制作它们

在尝试删除/crm前缀之前,我尝试首先为位置前缀定义单独的 php 上下文。但似乎我做错了什么,因为/crm每次都使用/.

我的实际精简配置删除了所有不相关的内容和所有失败的测试:

server {
    listen       80;
    server_name  myapp.localdev;

    location /crm {
        root       /var/www/crm/public;
        index      index.php;
        try_files  $uri /index.php$is_args$args;

        location ~ \.php$ {
            # todo: strip /crm from REQUEST_URI
            fastcgi_pass   127.0.0.1:9001; # 9001 = PHP 7.0
            fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
    }

    location / { …
Run Code Online (Sandbox Code Playgroud)

configuration fastcgi nginx nginx-location

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