小编ir0*_*r01的帖子

在Linux上使用jetbrains appcode IDE

Jetbrains网站的下载页面中没有针对linux的下载选项.我搜索了"在Linux上使用jetbrains appcode IDE".有些人说"这是跨平台".
可以在Linux上运行jetbrains appcode IDE吗?
我不能在linux上运行它(Ubuntu/Debian)

编辑:
我提到需要Appcode的C++ IDE功能.如果iOS功能不起作用,则没有问题.

linux ubuntu debian jetbrains-ide appcode

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

C#中的RSA加密:什么部分定义了公钥?

我已经生成了一个新的公钥/私钥对并将其导出为XML字符串:

RSACryptoServiceProvider RSA = new RSACryptoServiceProvider(2048);  
string publicPrivateKey = RSA.ToXmlString(true);
Run Code Online (Sandbox Code Playgroud)

publicPrivateKey中的XML字符串如下所示(为了便于阅读,缩短了字符串):

<RSAKeyValue>
   <Modulus>t6tLd1Wi7PEkwPfx9KGP1Ps/5F2saXnOsCE2U....</Modulus>
   <Exponent>AQAB</Exponent>
   <P>3LJ5y4Vla7cS3XgmbIH5dQgppUHa+aSWavEOCbDRS/M....</P>
   <Q>1QyGIAnjv4YLcRVdwXtxWkijc+aZ496qIBZnCAUUD/E....</Q>
   <DP>0821dc0f+LBKOqIEvj4+2kJrNV5ueQesFBYkEsjPFM....</DP>
   <DQ>ugSzX2oDJwjdGKG1OOiVcmUWAm6IU4PpOxcUYtY8TC....</DQ>
   <InverseQ>LDQIQu+LSB6CSZBrGxNQthWi9mkuPGVZyDDr....</InverseQ>
   <D>qZm2bXKH8WwbsJ8ZlT3S1TbgUifppLrqSRkb8XqEcMv....</D> 
</RSAKeyValue>
Run Code Online (Sandbox Code Playgroud)

生成的公钥应该在其他应用程序(PHP/JavaScript/JAVA)中用于加密数据.上述XML的哪一部分定义了公钥/我必须将哪些部分发送给其他应用程序的开发人员?

而在另一方面:什么定义私钥/我必须存储哪些部分/部分才能解密由我的公钥加密的数据?

.net c# cryptography rsa public-key-encryption

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

单向加密方法

这只是一个理论问题.我正在开始编写一个巨大的多服务器/多客户端网络视图.

问题:不可逆加密单向加密
的可能方法有哪些?在我的案例和.NET中最适合实现的是什么?

任何人都可以只提供一个方法名称列表!

c# encryption cryptography

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

c ++ STL中的正则表达式

STL中是否有任何本地库经过测试并且无需任何额外的编译器选项即可运行?我尝试使用<regex>,但编译器输出:

在/usr/include/c++/4.3/regex:40中包含的文件中,来自main.cpp:5:/usr/include/c++/4.3/c++0x_warning.h:36:2:错误:#error此文件需要编译器和库支持即将推出的ISO C++标准C++ 0x.此支持目前是实验性的,必须使用-std = c ++ 0x或-std = gnu ++ 0x编译器选项启用.

c++ regex stl

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

在浏览器中使用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
查看次数

C#RSACryptoServiceProvider ToXmlString()/ FromXmlString()

EDIT2:似乎Convert.FromBase64String是我的救星.有谁知道一个逗号是否都会在这样的字符串中?我正在做基本的csv解析.如果它是我总是可以使用引号(但我可以引用像这样的字符串引用)但这对我自己来说只是一个小项目,所以通过','拆分更容易解析.

编辑:好的,所以看起来我的问题是当我将加密的字节转换为字符串,然后将该字符串转换回字节进行解密.我怎么能这样做,因为我想实际存储加密的字符串,并能够解密该字符串.

我正在尝试将公钥(和私有用于测试)保存到xml文件中,以便稍后可以读取相同的文件,但在尝试解密时会出现"错误数据"错误.谁能看到我做错了什么?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Security.Cryptography;
using System.IO;

namespace EncryptionTest
{
class Program
{
    static void Main(string[] args)
    {
        UnicodeEncoding ByteConverter = new UnicodeEncoding();

        byte[] dataToEncrypt = ByteConverter.GetBytes("Test data");

        WriteRSAInfoToFile();

        string enc = Encrypt(dataToEncrypt);

        enc = Decrypt(enc);
    }

    static void WriteRSAInfoToFile()
    {
        RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();
        TextWriter writer = new StreamWriter("C:\\publicKey.xml");
        string publicKey = RSA.ToXmlString(false);
        writer.Write(publicKey);
        writer.Close();

        writer = new StreamWriter("C:\\privateKey.xml");
        string privateKey = RSA.ToXmlString(true);
        writer.Write(privateKey);
        writer.Close();
    }

    static string Encrypt(byte[] data) …
Run Code Online (Sandbox Code Playgroud)

c# encryption cryptography rsacryptoserviceprovider character-encoding

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

对CBC和ECB使用相同的AES密钥

概观

我正在尝试为服务器和客户端提供一种方法,以便能够为每个请求生成唯一的IV,这对于每个客户端都是不同的,但是确定性的.我的意思是确定性是服务器可以计算未来任何请求的IV,只知道起始序列.

我需要此功能的原因是我使用AES加密来实现一次性密码(OTP)方案.当客户端登录到服务器时,它会获得一个种子.通过加密该种子生成第一个OTP.对于每个后续请求,客户端使用服务器和客户端之间的共享AES密钥加密最后一个OTP.因此,即使攻击者在没有共享密钥的情况下嗅探最后一个OTP,他们也无法获得下一个OTP.OTP在CBC模式下使用AES加密.如果服务器和客户端不同步,则会出现问题.我计划处理这个的方式是在服务器端生成一些未来的OTP,看看它们是否与客户端相匹配.但是,如果没有确定性地计算每次加密迭代的IV的方法,这是不可能的.

在我进入我提出的解决方案之前,让我表达我对AES,IV,CBC和ECB的理解.这样,如果我对我的基本原则有任何误解,可以指出并纠正.

理论

欧洲央行

我知道ECB将为使用相同密钥加密的相同明文块产生相同的输出.因此,它不应该用于多个数据块,因为可以通过统计分析数据来辨别有关明文的信息.基于此,似乎如果你可以保证你的数据总是小于16字节(128位),它将消除统计攻击的问题.此外,如果您还可以保证从未使用相同的密钥加密相同的明文,您将永远无法获得相同的输出.因此,在我看来,假设您的系统始终符合这些非常严格的标准,使用ECB是安全的.

CBC和IV

我知道CBC旨在消除这两个问题.通过链接块,它消除了ECB的多块统计攻击.从不对同一个AES密钥使用相同的IV,可以消除使用相同密钥对同一输出加密相同明文的问题.

关键唯一性

如果每个客户端获得生成的AES密钥,那么当多个用户具有相同密钥的可能性很小时,机会非常小.因此,可以安全地假设没有两个客户端将使用相同的AES密钥.

建议的解决方案

我建议的解决方案是为每个客户端提供唯一的AES密钥.生成密钥时,计数器将初始化为随机数.每次必须加密某些东西时,计数器将增加1.此数字将填充到块中,然后在ECB模式下使用AES加密.这个输出将是我使用CBC加密数据的IV.

如果服务器与客户端的计数器不同步,因为它具有相同的密钥而ECB不需要IV,它可以继续生成IV,直到找到允许数据被解密的IV.

我的想法是这个IV是安全的统计攻击,因为它等于AES的块大小.此外,每次用户都会有所不同,因为每个用户都有一个唯一的密钥,计数器总是递增.显然,必须安全地传输AES密钥(现在客户端正在使用服务器的公共RSA密钥加密生成的密钥).

我的问题

我对所提出的解决方案中描述的技术的基本理解是否正确?我提议的解决方案有什么明显的错误吗?是否存在使用相同密钥以建议方式生成IV以及使用CBC加密的安全漏洞?

我意识到最后一个问题可能很难/不可能回答,因为密码学真的很难,但任何见解都会受到赞赏.

提前致谢.

security encryption cryptography aes erlang-otp

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

如何生成证书链作为参数发送到KeyStore.PrivateKeyEntry?

我是Java编程的初学者。我的代码对从文本文件中提取的数据进行加密,然后使用RSA算法将其存储在另一个文件中。我想通过使用KeyStore类(http://download.oracle.com/javase/1,5.0/docs/api/java/security/KeyStore.html)及其嵌套类-KeyStore来保护我的私钥密码。 PrivateKeyEntry(http://download.oracle.com/javase/1,5.0/docs/api/java/security/KeyStore.PrivateKeyEntry.html)。

KeyStore.PrivateKeyEntry的构造函数需要使用Certificate []数组,但我不确定如何生成此Certificate []数组。

到目前为止,我将附加我的代码以及问题:

这是加密代码。

public class Fileencrypt {

     public static void main(String args[])  throws IOException, InvalidKeyException, java.security.InvalidKeyException, NoSuchAlgorithmException, NoSuchPaddingException, KeyStoreException, CertificateException, CertificateEncodingException, IllegalStateException, NoSuchProviderException, SignatureException, UnrecoverableKeyException{   
     try{ 

         byte[] plainData;
         byte[] encryptedData = null;

         KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA");
         kpg.initialize(2048);
         KeyPair kp = kpg.genKeyPair();
         PublicKey publicKey = kp.getPublic();
         PrivateKey privateKey = kp.getPrivate();



         Cipher cipher = Cipher.getInstance("RSA");
         cipher.init(Cipher.ENCRYPT_MODE, publicKey);

         try { 
         X509EncodedKeySpec x509EncodedKeySpec = new X509EncodedKeySpec(publicKey.getEncoded());
        FileOutputStream fos = new FileOutputStream("C:\\Output\\Publickey.txt");
        fos.write(x509EncodedKeySpec.getEncoded());
        fos.close();
        // Store Private Key.
        PKCS8EncodedKeySpec pkcs8EncodedKeySpec = …
Run Code Online (Sandbox Code Playgroud)

java cryptography rsa certificate keystore

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

检查canAuthenticateAgainstProtectionSpace中的公钥

我被要求检查公钥中的已知值canAuthenticateAgainstProtectionSpace(代表回调NSURLConnection)

这是我到目前为止:

- (BOOL)connection:(NSURLConnection *)connection 
        canAuthenticateAgainstProtectionSpace:(NSURLProtectionSpace *)protectionSpace 
    {
        SecKeyRef publicKey = SecTrustCopyPublicKey([protectionSpace serverTrust]);

        NSLog(@"%@",SecTrustCopyPublicKey([protectionSpace serverTrust])); 
        return YES;
}
Run Code Online (Sandbox Code Playgroud)

如何将公钥与已知值进行比较?

NSLog产生:<SecKeyRef: 0x687c000>不是有用的.

iphone cryptography public-key ios

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

java.security.InvalidKeyException:密钥长度不是128/192/256位

我是Java的新手,正在尝试使用AES-128对称加密的混合加密技术,然后在生成的对称密钥上使用RSA-1024非对称加密.有人可以帮助我为什么会得到这个例外.我已经关注了其他帖子,并在相应的文件夹中下载了Java Cryptography Extension(JCE)Unlimited Strength Jurisdiction Policy Files第6版.

Code snippet:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.security.Key;
import java.security.InvalidKeyException;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.Security;
import java.security.interfaces.RSAPrivateKey;
import java.security.interfaces.RSAPublicKey;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.spec.SecretKeySpec;
import java.security.SecureRandom;

    public class MainClass {

        /**
         * @param args
         * Encryption and Decryption with AES/ECB/PKCS7Padding  and RSA/ECB/PKCS1Padding
         */
        public static void main(String[] args) throws Exception {
            // TODO Auto-generated method stub
            Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());   
            System.out.println("Enter a Message to be encrypted!");
            // Read an input from console
            InputStreamReader …
Run Code Online (Sandbox Code Playgroud)

java encryption cryptography public-key-encryption encryption-symmetric

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