首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏蔻丁杂记

    C# RSA 加密,解密与签名,验证签名

    /// <param name="data"></param>/// <param name="privateKeyJava"></param>/// <param name="<em>hashAlgorithm</em> returns></returns>public static string RSASignJavaBouncyCastle(string data, string privateKeyJava, string <em>hashAlgorithm</em> PrivateKeyFactory.CreateKey(Convert.FromBase64String(privateKeyJava)); ISigner signer = SignerUtilities.GetSigner(<em>hashAlgorithm</em> // <param name="publicKeyJava"></param>/// <param name="signature">base64签名</param>/// <param name="<em>hashAlgorithm</em> public static bool VerifyJavaBouncyCastle(string data, string publicKeyJava, string signature, string <em>hashAlgorithm</em>

    1.1K10编辑于 2024-12-25
  • 来自专栏AI.NET极客圈

    .Net Core 最优 MD5 打开方式!初学者建议收藏(支持 SHA1,SHA256,.Net Framework)

    且网上也没有给出很好使用方式,这里我就拿出我多年使用的 MD5 打开方式,这个方法同时支持 SHA1,SHA256 等,即支持 System.Security.Cryptography 命名空间下的 HashAlgorithm 这里说明一下,HashAlgorithm.ComputeHash (同 MD5.ComputeHash) 方法绝对不是线程安全的! { 3: public static string ComputeHash<THashAlgorithm>(string input) where THashAlgorithm : HashAlgorithm 方法为如下: 1: public static string ComputeHash<THashAlgorithm>(string input) where THashAlgorithm : HashAlgorithm 49: // 用户的参数执行到这里我们依然调用 HashAlgorithm.ComputeHash,由它内部抛出异常。这样可以避免很多问题和歧义。

    2.3K20发布于 2019-08-21
  • 来自专栏全栈程序员必看

    在Win10下 用 Powershell 或 CMD 完成文件的 MD2 MD4 MD5 SHA1 SHA256 SHA384 SHA512 等哈希校验[通俗易懂]

    文章目录 前言 CertUtil [选项] -hashfile InFile [HashAlgorithm] 使用 简单使用 总结 ---- 前言 发现Windows10自带哈希校验工具 ---- CertUtil [选项] -hashfile InFile [HashAlgorithm] 选项可以没有 选项: -Unicode – 以 Unicode 编写重定向输出 -gmt – 将时间显示为 GMT 显示密码和私钥数据 -pin PIN – 智能卡 PIN -sid WELL_KNOWN_SID_TYPE – 数字 SID 22 – 本地系统 23 – 本地服务 24 – 网络服务 HashAlgorithm

    93840编辑于 2022-10-03
  • 来自专栏明丰随笔

    非对称加密

    sha1 = HashAlgorithm.Create("SHA1"); // 获得签名过的摘要 byte[] signedDigest = provider.SignData(plainData = Encoding.UTF8.GetBytes(plainText); byte[] signedDigest = Convert.FromBase64String(signature); HashAlgorithm sha1 = HashAlgorithm.Create("SHA1"); bool isDataIntact = provider.VerifyData(plainData, sha1, signedDigest sha1 = HashAlgorithm.Create("SHA1"); // 获得原始摘要 byte[] digestData = sha1.ComputeHash(plainData); sha1 = HashAlgorithm.Create("SHA1"); byte[] digest = sha1.ComputeHash(plainData); // 解密签名,并判断摘要是否一致

    1.1K20发布于 2019-07-24
  • 来自专栏平凡少年

    一致性Hash算法在Redis分布式中的使用

    private SortedList<long, string> ketamaNodes = new SortedList<long, string>(); private HashAlgorithm hashAlg; private int numReps = 160; //此处参数与JAVA版中有区别,因为使用的静态方法,所以不再传递HashAlgorithm alg for (int h = 0; h < 4; h++) { long m = HashAlgorithm.hash (k); string rv = GetNodeForKey(HashAlgorithm.hash(digest, 0)); return rv; } rv = ketamaNodes[key]; return rv; } } public class HashAlgorithm

    1.4K30发布于 2019-04-11
  • 来自专栏AI.NET极客圈

    10分钟了解一致性hash算法

    private SortedList<long, string> ketamaNodes = new SortedList<long, string>(); private HashAlgorithm { //getKeyForNode方法为这组虚拟结点得到惟一名称 byte[] digest = HashAlgorithm.computeMd5 for (int h = 0; h < 4; h++) { long m = HashAlgorithm.hash (k); string rv = GetNodeForKey(HashAlgorithm.hash(digest, 0)); return rv; } rv = ketamaNodes[key]; return rv; } } public class HashAlgorithm

    76810发布于 2019-08-22
  • 来自专栏centosDai

    CA1850:首选静态 HashData 方法,而非 ComputeHash

    值 规则 ID CA1850 类别 “性能” 修复是中断修复还是非中断修复 非中断 原因 创建派生自 HashAlgorithm 的实例类型,用于调用其 ComputeHash 方法,并且该类型具有静态 使用这些静态 HashData 方法比创建和管理 HashAlgorithm 实例来调用 ComputeHash 更高效。 如何解决冲突 通常,通过更改代码以调用 HashData 并删除对 HashAlgorithm 实例的使用,即可修复规则。

    63830编辑于 2022-02-26
  • 来自专栏林德熙的博客

    win10 uwp 存放网络图片到本地 下载图片保存图片从本地打开所有代码Nuget安装

    可以去看我写的文章 private static string Md5(string str) { HashAlgorithmProvider hashAlgorithm HashAlgorithmProvider.OpenAlgorithm(HashAlgorithmNames.Md5); CryptographicHash cryptographic = hashAlgorithm.CreateHash } private static string Md5(string str) { HashAlgorithmProvider hashAlgorithm HashAlgorithmProvider.OpenAlgorithm(HashAlgorithmNames.Md5); CryptographicHash cryptographic = hashAlgorithm.CreateHash

    1.6K10发布于 2018-09-18
  • 来自专栏C#

    C#文件相同性判断

    isValidFileContent(string filePath1, string filePath2) { //创建一个哈希算法对象 using (HashAlgorithm hash = HashAlgorithm.Create()) { using (FileStream file1 = new FileStream public static string GetFileHash(string filePath) { //创建一个哈希算法对象 using (HashAlgorithm hash = HashAlgorithm.Create()) { using (FileStream file = new FileStream

    1.9K100发布于 2018-01-04
  • 来自专栏用户1175783的专栏

    使用.Net Core实现FNV分布式hash一致性算法

    # FNV1算法实现 代码实现上我将参考MD5算法的实现来编写FNV1算法: 首先,我将创建一个FNV1类,该类需要实现HashAlgorithm,之所以实现HashAlgorithm,是因为该抽象类定义了 hash算法通用的接口,这样也可以使我们的实现与.net框架集成的更好,当然如果你不喜欢也可以不实现HashAlgorithm,就当是写了一个独立的帮助类。 我们重写Create方法,这里我们将创建一个FNV1类的实例 最后,我们去实现这个FNV1类 所有实现代码如下: //首先我将创建FNV1类 public abstract class FNV1 : HashAlgorithm { //重写隐藏HashAlgorithm的Create方法 public static new FNV1 Create() { return new Implementation

    96130发布于 2019-09-18
  • 来自专栏C#

    DotNet加密方式解析--散列加密

    在.NET中System.Security.Cryptography命名空间下的HashAlgorithm类,表示所有加密哈希算法实现均必须从中派生的基类。有如下类结构: ?     接下来我们具体的了解一下HashAlgorithm类的一些方法:    1.HashAlgorithm类方法和属性解析:      (1).Hash属性:获取计算所得的哈希代码的值。 public static HashAlgorithm Create(string hashName) { return (HashAlgorithm) CryptoConfig.CreateFromName (hashName); }      由代码可知,指定哈希算法的新实例,如果hashName不是有效哈希算法,则为 null,该方法使用名称创建一个HashAlgorithm对象的新实例。       /// [ComVisible(true)] public abstract class MD5 : HashAlgorithm { ///

    1.5K80发布于 2018-01-04
  • 来自专栏程序员历小冰

    分布式数据缓存中的一致性哈希算法

    VIRTUAL_NODE_SUFFIX = "-"; private volatile TreeMap<Long, MemcachedNode> hashRing; private final HashAlgorithm hashAlg; public ConsistentHashNodeLocator(List<MemcachedNode> nodes, HashAlgorithm hashAlg) { return locatedNode.getValue(); } private TreeMap<Long, MemcachedNode> buildConsistentHashRing(HashAlgorithm hashAlgorithm, List<MemcachedNode> nodes) { TreeMap<Long, MemcachedNode> virtualNodeRing = new HashAlgorithm 是对哈希算法的抽象,一致性哈希算法可以使用各种普通的哈希算法,比如说 CRC ,MurmurHash 和 FNV 等。

    1K30发布于 2019-05-16
  • 来自专栏林德熙的博客

    win10 uwp 存放网络图片到本地 下载图片保存图片从本地打开所有代码Nuget安装Microsoft.Toolkit.Uwp

    可以去看我写的文章 private static string Md5(string str) { HashAlgorithmProvider hashAlgorithm HashAlgorithmProvider.OpenAlgorithm(HashAlgorithmNames.Md5); CryptographicHash cryptographic = hashAlgorithm.CreateHash } private static string Md5(string str) { HashAlgorithmProvider hashAlgorithm HashAlgorithmProvider.OpenAlgorithm(HashAlgorithmNames.Md5); CryptographicHash cryptographic = hashAlgorithm.CreateHash

    1.5K10发布于 2019-03-13
  • 来自专栏DotNet NB && CloudNative

    微软员工聊C#中的IDisposable接口

    这些有问题的类,包括常用的 HashAlgorithm(各种 SHA 算法的父类)和 MemoryStream。 其中 HashAlgorithm 的 Dispose 方法完全没必要,这个类的源代码看起来是这个样子: public abstract class HashAlgorithm : IDisposable 这个数组的存在,还导致你没法重用同一个 HashAlgorithm 对象,因为有共享的成员 HashValue,所以不再是 thread safe 的。 有人可能以为 HashAlgorithm 是为了“安全”考虑,所以在 Dispose 方法里对数组清零。 而且从源代码里的注释看来,HashAlgorithm 的这个方法确实是为了释放资源,而不是为了什么安全考虑。

    73440编辑于 2023-10-28
  • 来自专栏明丰随笔

    浅谈散列运算

    .Net中对散列运算支持 在.NET框架中,散列算法位于System.Security.Cryptography命名空间下,该命名空间位于mscorlib.dll程序集,由一个抽象基类HashAlgorithm 散列运算的类型之间共有三级的层级关系,以SHA1为例:第一级为抽象类HashAlgorithm;第二级为抽象类SHA1,第三级为普通类SHA1Managed和密封类SHA1CryptoServiceProvider ; // 初始化对象 // 也可以:SHA1Managed alg = new SHA1Managed(); HashAlgorithm alg = HashAlgorithm.Create(HashAlgorithmType.SHA1 创建算法对象的函数签名: public static HashAlgorithm Create(string hashName); ComputeHash()方法的重载: public byte[] ComputeHash public byte[] ComputeHash(Stream inputStream); .NET还提供了一些类型用作密钥散列运算,例如MACTripleDES、HMACSHA1、HMACMD5,它们与HashAlgorithm

    1.7K20发布于 2019-07-24
  • 来自专栏程序员历小冰

    分布式数据缓存中的一致性哈希算法

    hashAlg; public ConsistentHashNodeLocator(List<MemcachedNode> nodes, HashAlgorithm hashAlg) { return locatedNode.getValue(); } private TreeMap<Long, MemcachedNode> buildConsistentHashRing(HashAlgorithm hashAlgorithm, List<MemcachedNode> nodes) { TreeMap<Long, MemcachedNode> virtualNodeRing = new + i), node); } } return virtualNodeRing; } } 在 getPrimary 函数中,首先使用 HashAlgorithm HashAlgorithm 是对哈希算法的抽象,一致性哈希算法可以使用各种普通的哈希算法,比如说 CRC ,MurmurHash 和 FNV 等。

    1.1K20发布于 2019-05-13
  • 来自专栏码农沉思录

    分布式数据缓存中的一致性哈希算法

    VIRTUAL_NODE_SUFFIX = "-"; private volatile TreeMap<Long, MemcachedNode> hashRing; private final HashAlgorithm hashAlg; public ConsistentHashNodeLocator(List<MemcachedNode> nodes, HashAlgorithm hashAlg) { return locatedNode.getValue(); } private TreeMap<Long, MemcachedNode> buildConsistentHashRing(HashAlgorithm hashAlgorithm, List<MemcachedNode> nodes) { TreeMap<Long, MemcachedNode> virtualNodeRing = new HashAlgorithm 是对哈希算法的抽象,一致性哈希算法可以使用各种普通的哈希算法,比如说 CRC ,MurmurHash 和 FNV 等。

    96530发布于 2019-06-17
  • 来自专栏数安视界

    随笔记录之RSA 盲签名

    RSA 常见的两种签名实现 对原始消息签名和验签 def sign_raw_message(pri_key: RSAPrivateKey, data: bytes, hash_alg: HashAlgorithm hash_alg) def verify_raw_message(pub_key: RSAPublicKey, message: bytes, signature: bytes, hash_alg: HashAlgorithm return True 对消息摘要进行签名和验签 def sign_msg_hash(pri_key: RSAPrivateKey, hash_value: bytes, hash_alg: HashAlgorithm hash_alg)) def verify_msg_hash(pub_key: RSAPublicKey, hash_value: bytes, signature: bytes, hash_alg: HashAlgorithm time_cost)) return r def blind_msg(message: bytes, public_key: RSAPublicKey, hash_alg: HashAlgorithm

    1.9K3421编辑于 2023-08-31
  • 来自专栏半行代码

    深入OKHttp之TLS

    . */ final String hashAlgorithm; /** The hash of the pinned certificate using {@link #hashAlgorithm p = 0, pinsSize = pins.size(); p < pinsSize; p++) { Pin pin = pins.get(p); if (pin.hashAlgorithm.equals } else if (pin.hashAlgorithm.equals("sha1/")) { if (sha1 == null) sha1 = sha1(x509Certificate } else { throw new AssertionError("unsupported hashAlgorithm: " + pin.hashAlgorithm);

    2.9K10编辑于 2022-05-10
  • 来自专栏云计算linux

    shiro安全框架从入门到精通实战!!!!

    secureRandom.nextBytes(byteLen).toHex(); } /** * 获取加密后的密码,使用默认hash迭代的次数 1 次 * * @param hashAlgorithm param salt 盐 * @return 加密后的密码 */ public static String encryptPassword(String hashAlgorithm encryptPassword("MD5", password, salt, 2); } /** * 获取加密后的密码,需要指定 hash迭代的次数 * * @param hashAlgorithm hashIterations hash迭代的次数 * @return 加密后的密码 */ public static String encryptPassword(String hashAlgorithm , String password, String salt, int hashIterations) { SimpleHash hash = new SimpleHash(hashAlgorithm

    29110编辑于 2024-12-13
领券