小编Maa*_*wes的帖子

如何在不使用InvalidPluginExecutionException的情况下通过插件向用户发送警报?

我目前正在使用InvalidPluginExecutionException该消息发送给用户,但事实证明该消息是英文的,"Business Process Error"超出该消息的错误框出现在按钮上"download log file".这不是错误,因为用户正在尝试复制记录,如代码中所示.还有其他方法,而不必使用InvalidPluginExecutionException显示警报?

QueryExpression query1 = new QueryExpression();
query1.ColumnSet = new ColumnSet(true);
query1.EntityName = "new_appraisers";

EntityCollection ec = service.RetrieveMultiple(query1);

if (ec.Entities.Count <= 0)
{
    log.Tb_Log_Create("Appraiser created");
}
else
{
    foreach (Entity app in ec.Entities)
    {
        if (app["fcg_appraiser"].ToString() == name)
        {
            log.Tb_Log_Create("appraiser allready exist");

            throw new InvalidPluginExecutionException("The name allready exists");
        }

        if (app["new_login"].ToString() == login)
        {
            log.Tb_Log_Create("appraiser allready exist");

            throw new InvalidPluginExecutionException("The login allready exists.");
        }
    } 
}
Run Code Online (Sandbox Code Playgroud)

c# plugins crm dynamics-crm-2011

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

什么是Kotlin的兼容性政策?

一旦Kotlin 1.0问世,兼容性政策会是什么?作为用户,我希望Kotlin能够保持其兼容性,无论是源代码还是二进制代码.和Java一样严肃.

相比之下,Scala就是一个糟糕的例子.未能保持次要版本之间的二进制兼容性驱使我离开.我相信很多用户已经离开了Scala,部分原因是兼容性问题.这导致许多库(包括我的SBT)无法为整个Scala版本系列提供完整的发行版.这只是二进制兼容性问题.想象一下,如果源兼容性被破坏了.

我决定在我公司的商业项目中使用Kotlin.所以我真的需要确保Kotlin 认真保持兼容性,而不是追求美.

kotlin

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

Android - javax.crypto.AEADBadTagException

我当前在尝试解密已加密的文件时收到 AEADBadTagException。我在 stackoverflow 上搜索了几乎所有地方,但无法找到解决方案,并希望这只是我犯的一个小错误或与编码等有关,因为 GCM 无法验证它正在生成的标签。

\n\n

我相信问题出在我尝试加密/解密的文件中的某个地方。同样的代码适用于图像,但是,当我尝试加密 PDF 时,它失败并给出上述错误。

\n\n

下面的代码没有使用 CipherOutputStream/CipherInputStream,但我已经尝试过两者但没有运气。

\n\n

我知道加密/解密方法不应该这样编写,特别是对于硬编码的 IV,但现在我只是想让它工作,然后稍后正确保护这些方法。

\n\n

我正在使用 Android KeyStore 来获取我的密钥。我知道这部分是有效的,因为我在应用程序中有很多其他部分使用相同的方法使用密钥库。另外,此方法适用于图像。

\n\n

该错误发生在 cipher.doFinal(encryptedBytes) 上。当我使用 CipherInputStream 时,它发生在 CipherInputStream(EncryptedFileStream, cipher) 上

\n\n

这是代码以及错误堆栈,非常感谢任何帮助:

\n\n

加密

\n\n
        val fileBytes = inputStream.readBytes()\n        val cipher = Cipher.getInstance("AES/GCM/NoPadding")\n        keyStoreService.checkKeyAndCreate(ALIAS_FILE_KEY)\n        val key = keyStoreService.getFileKey(ALIAS_FILE_KEY)\n        val iv = byteArrayOf(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)\n        cipher.init(Cipher.ENCRYPT_MODE, key, GCMParameterSpec(128, iv))\n        val encryptedBytes = cipher.doFinal(fileBytes)\n        outputStream = FileOutputStream(file)\n        outputStream.write(encryptedBytes)\n        outputStream.flush()\n        inputStream.close()\n        outputStream.close()\n
Run Code Online (Sandbox Code Playgroud)\n\n

解密 …

encryption android cryptography aes-gcm kotlin

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

Tink中用于KeysetHandle的键构造

以下几行显示了如何在Tink中生成密钥:

  • keysetHandle=KeysetHandle.generateNew(AeadKeyTemplates.AES128_GCM)
  • privateKeysetHandle = KeysetHandle.generateNew(SignatureKeyTemplates.ECDSA_P256)

您能告诉我如何根据给定的参数(例如密钥字节和相关参数)构造密钥吗?


也可以通过从JSON加载参数来创建密钥:

  String keysetFilename = "my_keyset.json";
  KeysetHandle keysetHandle = CleartextKeysetHandle.read(
          JsonKeysetReader.withFile(new File(keysetFilename)));
Run Code Online (Sandbox Code Playgroud)

如何定义JSON中的密钥格式?

cryptography tink

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

NPM 可以在安装之前显示软件包的使用期限吗?

鉴于现有 npm 软件包中最近出现的恶意软件,我希望有一种机制可以让我在安装新软件包或更新现有软件包之前进行一些基本检查。我的主要问题是直接安装的软件包和间接安装的软件包。

一般来说,我想在安装之前获取 npm 将安装的软件包版本列表。更具体地说,我想要安装的软件包的年龄,因此如果其中任何一个软件包的年龄小于一天,我可以生成警告。

如果我可以直接使用 npm 来做到这一点,那就太好了,但恐怕我需要围绕它编写一些脚本。

具体用例:

如果我npm install react-native-gesture-handler在 2021 年 10 月 22 日执行,它将执行恶意版本的 ua-parser 的安装后挂钩,并且我的计算机将受到损害,这是我想避免的事情。

当我输入时npm install react-native-gesture-handler --dry-run,它只告诉我它将安装哪个版本的react-native-gesture-handler,但它不会告诉我它将安装当天发布的ua-parser版本。

补充笔记:

  • 我知道npm i --dry-run存在,但它只显示直接包。
  • 我知道npm list存在,但它只显示安装后的软件包(因此在安装挂钩已经造成伤害之后)
  • 两者都只显示软件包版本而不显示它们的年龄
  • 我不知道在安装之前如何获得安装挂钩附带的软件包列表
  • 欢迎提供处理恶意 npm 包的替代方法。
  • 到目前为止,我最好的解决方案是执行“--ignore-scripts”,但这会带来一系列问题

security node.js npm npm-install

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

C示例中的AES,Serpent或Twofish?

我在C中发现了很多AES,Twofish和Serpent的实现.但我真的不明白这些例子.我只知道有些地方提供了反转矩阵的例子.

有人可以指向我的示例或.c文件来加密/解密由a char* 和密码表示的数据 吗?

c encryption aes

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

运行Python脚本的方式有所不同

我有一个非常简单的Python问题,使用Django的例子.运行Python脚本时,是否始终必须在脚本文件名前面加上python命令?

在我关注的Django教程中,一些命令如下:

django-admin.py startproject mysite
Run Code Online (Sandbox Code Playgroud)

但是,其他是这样的:

python manage.py runserver
Run Code Online (Sandbox Code Playgroud)

为什么顶级的不需要python命令?

或者,如果我的系统知道所有Python脚本都要由我的python解释器执行,为什么底部的脚本需要python命令呢?

python django

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

如何查看Postman在发出OAuth请求时使用的原始签名?

我正在使用Postman 5.1.3.我正在尝试使用Postman的OAuth屏幕连接到OAuth 1.0a端点.如何查看Postman用于构造散列"oauth_signature"参数的原始签名?我正在填写一个值

consumer_key
consumer_secret
signature_method
timestamp
nonce
version
Run Code Online (Sandbox Code Playgroud)

我将HTTP方法保留为"GET"并单击"发送".一切都很顺利,但我无法重现Java中的行为,这就是为什么我正在寻找一种方法来查看Postman在构建请求时使用的原始签名.

oauth digital-signature postman oauth-1.0a

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

将 JarSigner 与 RSASSA-PSS 结合使用

我正在尝试使用 PKCS#11 使用 JarSigner 对 JAR 文件进行 RSA-PSS 签名。JarSigner 使用sigalg标志来指定签名算法。JarSignerJDK 14 Docs没有指定明确支持哪些信号。我已经测试过 JarSigner 接受“RSASSA-PSS”作为有效算法。JarSigner 不接受 Java 加密服务提供程序(例如 SunPKCS11 加密服务提供程序)通常支持的“SHA256withRSASSA-PSS”或类似的 RSASSA-PSS 变体。当尝试使用sigalg "RSASSA-PSS" 签名时,JarSigner 返回

jarsigner: unable to sign jar: java.security.SignatureException: Parameters required for RSASSA-PSS signature

此异常意味着未设置 PSS 参数。我已将问题追溯到 JarSigner

我错过了什么吗?如果是,我如何对 JAR 文件进行 RSA-PSS 签名?如果没有,这是一个错误吗?毕竟,JarSigner 明确接受 RSASSA-PSS 作为有效信号。或者这是 …

java cryptography pkcs#11 jarsigner

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

C#中的非对称加密示例

我需要通过TCP连接将机密数据发送到服务器.我做了很多研究,理解了理论部分.根据我研究的内容,我想做以下事情:

注意有一个服务器和一个客户端:(我们假设任何人都可以获得客户端或服务器的公钥)

  1. 客户端创建他的公钥和私钥.他能够用他的私钥加密并用他的公钥解密.

  2. 服务器创建他的公钥和私钥.私钥用于解密消息,公钥用于加密消息.(注意与客户端相反)

  3. 客户端获取服务器的公钥.然后,客户端将能够使用该密钥加密消息,并且唯一能够解密该消息的消息将是服务器的私钥.

  4. 由于服务器需要确定消息来自该特定客户端,因此客户端将使用其私钥加密其名称(签名).

  5. 因此客户端消息将包含:要发送的数据,客户端的公钥,使用客户端私钥加密的客户端名称.

  6. 客户端将使用服务器中的公钥加密消息.然后,客户端将该消息发送到服务器.

  7. 服务器将使用他的私钥解密刚刚收到的消息.

  8. 一旦消息被解密,它将包含来自客户端的数据(信息),加密签名,公钥.

  9. 最后,服务器将使用消息中包含的公钥解密客户端签名,以验证消息是否来自该客户端.


好的,这就是非对称加密的工作原理.我还研究过使用.NET框架创建这些密钥对的类.我研究过的可以创建此公钥和私钥对的类是:

System.Security.Cryptography.DES
System.Security.Cryptography.DSACryptoServiceProvider 
System.Security.Cryptography.ECDsa 
System.Security.Cryptography.ECDsaCng 
System.Security.Cryptography.ECDiffieHellman 
System.Security.Cryptography.ECDiffieHellmanCng 
System.Security.Cryptography.RSA 
System.Security.Cryptography.RSACryptoServiceProvider 
Run Code Online (Sandbox Code Playgroud)

所以现在我的问题出现在如何使用这个类中的一个用C#来完成它?我理解理论部分是如何工作的,但我怎么做我刚才用代码描述的东西.我研究了一些例子,但我很难理解它们.

这是我发现我相信我所描述的一个例子:

using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;

namespace Example
{
    class Program
    {
        static CngKey aliceKey;
        static CngKey bobKey;
        static byte[] alicePubKeyBlob;
        static byte[] bobPubKeyBlob;

        static void Main()
        {
            CreateKeys();
            byte[] encrytpedData = AliceSendsData("secret message");
            BobReceivesData(encrytpedData);

            Console.Read();

        }

        private static void CreateKeys()
        {
            aliceKey = CngKey.Create(CngAlgorithm.ECDiffieHellmanP256);
            bobKey = CngKey.Create(CngAlgorithm.ECDiffieHellmanP256);
            alicePubKeyBlob = aliceKey.Export(CngKeyBlobFormat.EccPublicBlob);
            bobPubKeyBlob = bobKey.Export(CngKeyBlobFormat.EccPublicBlob);
        }

        private …
Run Code Online (Sandbox Code Playgroud)

c# encryption cryptography

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