Windows Phone 7 上带有盐的 SHA1

2024-01-14

我现在花了一些时间研究如何使用盐将密码编码为 SHA1。

这是我在网络应用程序部分使用的代码,但它不适用于电话环境。

public class Password
{
    private string _password;
    private int _salt;

    public Password(string strPassword, int nSalt)
    {
        _password = strPassword;
        _salt = nSalt;
    }

    public string ComputeSaltedHash()
    {
        // Create Byte array of password string
        ASCIIEncoding encoder = new ASCIIEncoding();
        Byte[] _secretBytes = encoder.GetBytes(_password);

        // Create a new salt
        Byte[] _saltBytes = new Byte[4];
        _saltBytes[0] = (byte)(_salt >> 24);
        _saltBytes[1] = (byte)(_salt >> 16);
        _saltBytes[2] = (byte)(_salt >> 8);
        _saltBytes[3] = (byte)(_salt);

        // append the two arrays
        Byte[] toHash = new Byte[_secretBytes.Length + _saltBytes.Length];
        Array.Copy(_secretBytes, 0, toHash, 0, _secretBytes.Length);
        Array.Copy(_saltBytes, 0, toHash, _secretBytes.Length, _saltBytes.Length);

        SHA1 sha1 = SHA1.Create();
        Byte[] computedHash = sha1.ComputeHash(toHash);

        return encoder.GetString(computedHash);
    }

    public static int CreateRandomSalt()
    {
        Byte[] _saltBytes = new Byte[4];
        RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
        rng.GetBytes(_saltBytes);

        return ((((int)_saltBytes[0]) << 24) + (((int)_saltBytes[1]) << 16) +
            (((int)_saltBytes[2]) << 8) + ((int)_saltBytes[3]));
    }

    public static string CreateRandomPassword(int PasswordLength)
    {
        String _allowedChars = "abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNOPQRSTUVWXYZ23456789!\"#¤%&/()=?$+-_.,;'*";
        Byte[] randomBytes = new Byte[PasswordLength];
        RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
        rng.GetBytes(randomBytes);
        char[] chars = new char[PasswordLength];
        int allowedCharCount = _allowedChars.Length;

        for (int i = 0; i < PasswordLength; i++)
        {
            chars[i] = _allowedChars[(int)randomBytes[i] % allowedCharCount];
        }

        return new string(chars);
    }
}

Silverlight 和 Windows Phone 7 没有ASCIIEncoding。我建议你使用UTF8Encoding反而。如果您确定您的密码始终在 ASCII 范围内,那么此编码的工作方式与ASCIIEncoding如果它存在的话就会发生。

另一方面,如果您不能保证密码始终在 ASCII 范围内,那么您需要使用以下命令确保两端哈希UTF8Encoding确保生成的哈希值相同。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Windows Phone 7 上带有盐的 SHA1 的相关文章

  • 如何隐藏数据透视项标题?

    我希望有一个具有 PivotItems 但没有横向数据透视项标题文本的数据透视控件 它是横向模式下的画廊 当恢复为纵向时 它应该再次显示 PivotItems 标题 解决办法就是制作文字PivotItem Header 不好 因为标题文本占
  • 如何在 PHP 中复制此 C# 哈希? (toByteArray()、ComputeHash())

    我正在尝试复制以下代码PHP 这是我必须与之交互的 API 的示例代码 API 和示例代码位于C 我的应用程序在PHP 5 3 我不是 C 开发人员 因此在执行此操作时遇到困难 C Code I am trying to replicate
  • 如何在Windows Phone 7中获取Wi-Fi和移动网络参数?

    我的应用程序需要以下移动网络参数 MCC 移动国家代码 MNC 移动网络代码 LAC 位置区域代码 CID 小区标识符 细胞信号强度 对于 Wi Fi MAC地址 信号强度 我还需要两个变体的设备 IP 地址 Windows Phone 7
  • jQuery Mobile 中的页面高度不正确

    我正在使用 jQuery Mobile 1 2 0 开发一个 Web 应用程序 并且在 iOS 和 Android 上正确计算页面高度 但在 Windows Phone 上则不然 它在页面底部有一个间隙 知道如何修复它吗 最好只使用 CSS
  • 重置 Windows Phone 照片上传

    我正在尝试使用 RestSharp 将照片上传到 Windows Phone 7 应用程序中的 REST api 进行获取 发布 post参数如下 photo 照片 编码为多部分 表单数据 照片 相册 id 现有相册的标识符 可以是一个事件
  • Windows Phone 上的列表框样式所选项目

    我想知道如何在选择列表框的项目时添加样式 我有以下列表框
  • 如何检测 toolkit:GestureListener Hold 何时停止?

    有什么方法可以检测到这一点吗 我想只要用户按住图标就继续执行操作 而不是使用GestureListener为此 您可以使用鼠标操作事件来检测执行操作的时间 例如 听听MouseLeftButtonDown了解用户何时触摸了图标 继续执行该操
  • Windows Phone 7 本机代码支持

    2个问题 有人可以告诉我非托管 c 代码是否会 Phone 7 操作系统的未来版本是否会支持所有开发人员 MS 不这样做的原因是什么 支持非托管 C 代码 这个答案纯粹是推测性的 但我觉得大多数回答这个问题的其他人都没有抓住要点 让我们暂时
  • 多图像选择

    我正在使用 Windows Phone SDK 7 1 C 在 WP7 中制作应用程序 正在使用照片选择器任务 但我想选择 9 张图像 而这里我只能选择一张图像 如何一次选择 9 张图像 请帮助我 这是我的代码 public partial
  • 在 WP7 中,当页面上存在 WebBrowser 控件时,TextBox.Focus() 不起作用

    我需要将焦点设置在文本框上 问题是 当页面上存在 WebBrowser 控件时 SIP 会显示为就像选择了文本框一样 但光标在文本框中不可见 并且输入不会转到文本框 如果我注释掉 WebBrowser 控件 则行为如预期 加载页面时光标在文
  • MVVMLight - 如何获取视图中ViewModel的引用?

    我正在构建一个 Windows Phone 7 应用程序 并且需要在视图中引用 ViewModel 以便可以从事件处理程序设置属性 唯一的问题是我无法获得该参考 我做了什么 我有一个 ViewModelLocator 删除了不相关的位 st
  • WP7 导航 - NullReferenceException

    我需要在第一次运行应用程序时导航到某个页面 以收集登录详细信息等 我使用 IsloatedStorageSettings 来保存一个值 以确定这是否是应用程序的第一次运行 这工作正常 我的问题实际上是在第一次运行应用程序时使用 Naviga
  • 是否可以使用 Javascript 计算文件的 SHA1 ID?

    如果可以在发布表单之前执行此操作 那么我可能不必将文件上传到我的服务器 为此 您必须将文件的二进制信息加载到 JavaScript 中 这是不可能的 But here s http www webtoolkit info javascrip
  • ListBox 内的 WP7 TextBlock 不换行文本

    我有一个ListBox其中有StackPanels 拿着一个TextBlock and an Image水平方向 然后是ContentPresenter XAML 如下所示
  • 用于 Windows Phone 开发的 FFmpeg

    我在 ASP Net 基于 Web 的应用程序中使用了 FFmpeg 现在我想用它来进行Windows Phone开发 可以使用吗 如果是 那么如何 Windows Phone 7 根本不支持 FFmpeg 而且据我在网上找到的信息 Win
  • 每页上的进度条

    我需要一个进度条来显示在大多数 如果不是所有 页面上 有没有一个好方法可以轻松让进度条出现在所有页面上 我有一个基页面类 我的所有页面都继承自该基页面类 我正在考虑将进度条动态添加到基类中的每个页面 但不知道如何做到这一点 我可以让基本页面
  • 黑屏只是闪烁一会儿

    在我的 Windows Phone 8 应用程序中 我有一个搜索页面 其中有一个文本框供用户输入搜索关键字 输入默认SIP键盘的 Enter 键时将调用搜索 搜索结果显示在另一个页面中 为了在导航到结果页面之前隐藏键盘 我使用 this F
  • 部署架构问题

    我也已将应用程序名称和命名空间从 FooXXX 更改为 FooYYY VS 将更改应用于所有文件 我已经检查了所有命名空间 名称等 项目编译 但是当我想将其部署到模拟器或设备时 它会立即崩溃 没有战争 没有消息 没有例外 仅显示启动屏幕 然
  • 我无法保存到独立存储?

    我正在尝试将我的模型保存在独立存储中 var settings IsolatedStorageSettings ApplicationSettings CurrentPlaceNowModel model new CurrentPlaceN
  • 数据绑定+动态透视

    我在将数据透视项动态添加到模板化和数据绑定数据透视时遇到问题 使用的类 稍微简化以使其快速理解 class Menu string Name List

随机推荐

  • z-index 和 iframe 问题 - 下拉菜单

    嘿 我的下拉菜单和 iframe 有一个相当令人费解的问题 我已将 1000 的 z index 应用于下拉菜单 但是包含 youtube 视频的 iframe 仍然出现在菜单上方 请自行查看下面 检查 简码 菜单 http www mat
  • F#:字典、哈希表和映射之间的区别

    我是 NET 编程新手 抱歉 如果这个问题之前已被问过 我目前正在学习F 字典 哈希表和映射之间有什么区别 我应该什么时候使用它们 我还有一个问题 标题中没有提到 我什么时候应该使用Async RunSynchronously 这对我来说似
  • 覆盖不可修改域 Java 类中的 JAXB 绑定

    我花了一整天的时间试图解决这个问题 包括在这个网站上进行广泛的搜索 但我找不到问题的答案 我正在努力实现这一目标 在 XML 和一些我无法控制的现有 Java 对象之间进行转换 结果 源 XML 中的元素名称与 Java 类的属性名称不同
  • 实施面向 3.5 和 4.0 的 .Net 项目

    我们有一个项目 日志记录库 由标准 asp net 应用程序 4 0 框架 和 sharepoint 解决方案 3 5 框架 使用 有没有办法定义两个目标 以便在构建项目时构建两个版本 另外 有人实现了类似的东西并通过 nuget 分发它吗
  • Flutter 在 iOS 设备上出现“连接到服务协议时出错:HttpException...”错误

    对于网络连接我使用dio并用于检查连接状态Connectivity 在这里我检查网络状态 override Widget build BuildContext context bloc checkConnectivity Connectiv
  • jQuery 片段用动画交换两组元素

    是否有一些 jQuery 代码可以用动画交换 2 组元素 我只发现使用 jQuery 将列表项移动到无序列表的顶部 https stackoverflow com questions 1625960 move list item to to
  • 固定表格标题仅水平和垂直滚动 CSS

    首先 是否可以仅使用 CSS 来实现这一点 我已经构建了一个可以水平和垂直滚动的表格 但是 我希望将标题封装在其容器内 而不是出现在包装器之外 这样 当您水平滚动时 相应的标题与其指定列的内容一致 使用不同的变体position absol
  • JBoss AS7自动加载JPA

    我有一个使用 JPA Hibernate 和 Google Guice 的应用程序 Guice 是在一个ServletContextListener它设置了EntityManagerFactory itself 该应用程序在 Tomcat
  • python:numpy 数组的矩阵列表?

    我有一个包含 numpy 矩阵的列表 无论如何 我可以将整个事情变成一个漂亮的干净的 numpy 数组吗 From matrix 1 matrix 1 99387871 matrix 2 53564618 matrix 4 39125807
  • 出现错误 mysqli::real_connect(): (HY000/2002): 当我尝试访问实时服务器上的项目时没有这样的文件或目录[重复]

    这个问题在这里已经有答案了 我已将我的网站上传到服务器 然后尝试访问 但代码点火器向我返回错误 我找不到任何答案 为什么会发生这种情况 我的配置数据库设置如下 db default array dsn gt hostname gt loca
  • JavaScript 中按名称读取 cookie 的最短函数是什么?

    在 JavaScript 中读取 cookie 的最短 准确且跨浏览器兼容的方法是什么 很多时候 在构建独立脚本 我不能有任何外部依赖项 时 我发现自己添加了一个读取 cookie 的函数 并且通常会依赖于QuirksMode orgrea
  • PostgreSQL ANSI、Python SQL、utf-8' 编解码器无法解码字节 0xa0

    我正在尝试在 python 中运行 sql 查询 在 python 2 中 这曾经有效 但现在我使用 python 3 这不再有效 我收到错误UnicodeDecodeError utf 8 codec can t decode byte
  • wx (Python) 小部件的 GUI 更新缓慢?

    考虑这个例子 在 python2 7 Ubuntu 11 04 上尝试过 import wx import wx lib agw knobctrl as KC started from http wxpython org Phoenix d
  • 如何使用 rxjs 定期检查实时连接?

    我使用 rxjs 来处理 websocket 连接 var socket Rx Observable webSocket wss echo websocket org socket resultSelector e gt e data 我想
  • 使用起订量模拟 HttpMessageHandler - 如何获取请求的内容?

    在决定我要发回测试的响应类型之前 有没有办法获取 http 请求的内容 多个测试将使用此类 每个测试将有多个 http 请求 此代码无法编译 因为 lambda 不是async并且有一个await在里面 我是异步等待的新手 所以我不知道如何
  • 使用 docker 在 AWS ray 集群上启动简单的 python 脚本

    我发现遵循 Ray 指南在 ray 集群上运行 docker 映像以执行 python 脚本非常困难 我发现缺乏简单的工作示例 所以我有最简单的docker文件 FROM rayproject ray WORKDIR usr src app
  • Java:高效的ArrayList过滤?

    我需要过滤 ArrayList 并删除找到的元素 作为 Java 的新手 我想知道实现此目的最有效的方法是什么 很重要 因为它在移动设备上运行 目前我这样做 We display only top level dealers parentI
  • 带两个参数的 MVC6 属性路由

    我已经对此进行了查看 并且没有任何与 MVC6 taghelper 锚标记相关的内容与满足多个参数的替代 HttpGet 方法相关 当然 您可以向 MVC6 锚标记帮助器添加多个参数 但是如何使用属性路由处理带有两个参数的第二个选项 我有两
  • 崩溃并终止原因 0xdead10cc

    请问这起事故的原因是什么 Incident Identifier A176CFB8 6BB7 4515 A4A2 82D2B962E097 CrashReporter Key f02957b828fe4090389c1282ca8e3839
  • Windows Phone 7 上带有盐的 SHA1

    我现在花了一些时间研究如何使用盐将密码编码为 SHA1 这是我在网络应用程序部分使用的代码 但它不适用于电话环境 public class Password private string password private int salt