iOS 中特定字符串的 SHA1

2024-05-25

根据我的要求:

  1. 输入字符串必须转换为字节值。
  2. string 的每个字符都是 16 位值,必须转换为低 8 位。
  3. 然后在字节数组上计算 Sha1。
  4. 生成的 SHA-1 将转换为 40 个字符的字符串。

我知道如何将字符串转换为 SHA1 ,但其余部分对我来说有点令人沮丧。 我已经能够完成最后两个步骤。

unsigned char digest[CC_SHA1_DIGEST_LENGTH];
NSData *dataString = [yourString dataUsingEncoding: NSUTF8StringEncoding]; 

if (CC_SHA1([dataString bytes], [dataString length], digest)) {
   //Sha1 is calculated & stored in digest.
}

任何帮助将不胜感激。


我已经创建了这个功能,它可以根据您的要求正常工作。您只需输入一个字符串。

#import <CommonCrypto/CommonDigest.h>

- (NSString *)calculateSHA:(NSString *)yourString
{
    const char *ptr = [yourString UTF8String];

    int i =0;
    int len = strlen(ptr);
    Byte byteArray[len];
    while (i!=len)
    {
        unsigned eachChar = *(ptr + i);
        unsigned low8Bits = eachChar & 0xFF;

        byteArray[i] = low8Bits;
        i++;
    }


    unsigned char digest[CC_SHA1_DIGEST_LENGTH];

    CC_SHA1(byteArray, len, digest);

    NSMutableString *hex = [NSMutableString string];
    for (int i=0; i<20; i++)
        [hex appendFormat:@"%02x", digest[i]];

    NSString *immutableHex = [NSString stringWithString:hex];

    return immutableHex;
}

那么你只需要调用上面的方法就可以了。

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

iOS 中特定字符串的 SHA1 的相关文章

  • PFQueryTableViewController 错误

    我正在遵循在线教程 使用 Parse 作为后端创建照片共享应用程序 我已经运行了两次教程 两次都从头开始创建应用程序 但在同一位置仍然出现相同的错误 我到处寻找解决方案 但仍然没有运气 我正在使用 PFQueryTableViewContr
  • UIView晃动动画

    我试图在按下按钮时使 UIView 摇动 我正在调整我找到的代码http www cimgf com 2008 02 27 core animation tutorial window shake effect http www cimgf
  • 在 UIScrollview 上显示缩略图的最佳方法是什么(从服务器下载)

    我想在 UIScrollview 如照片应用程序 上显示许多图像 作为缩略图 所有图像将从服务器下载 据我所知 有几种选择 1 通过创建 UIImageviews 然后将它们添加为主滚动视图上的子视图 2 通过子类化一个UIView类 然后
  • 将 UIToolBar 添加到所有键盘(swift)

    我正在尝试以尽可能少的重复次数将自定义 UIToolBar 添加到我的所有键盘中 我目前的做法要求我将代码添加到所有 viewDidLoads 中 并将每个文本字段的委托分配给我正在使用的 viewController 我尝试创建自己的 U
  • 如何动态获取 UITableViewCell 的高度

    我创建了自定义的tableViewCell 我在UITableViewCell中添加了UIView SubView 所以我在 UIView 中的所有动态文本和图像内容都会根据文本和图像大小而变化 但现在 HeightforRowAtInde
  • iPhone X 将对象底部与安全区域对齐会破坏其他设备上的外观

    关于 iPhone X 自动布局怪癖的问题 我有两个按钮 以前这些按钮将与超级视图底部对齐 偏移量为 20 以免它们接触屏幕底部 此后我将链接更改为安全区域而不是超级视图 Here s the original setup Looks go
  • 有没有办法在 Firebase 中等待查询完成?

    我正在使用 TableView 在 Viewcontroller 中的 iOS 应用程序中进行查询 我想确保在继续加载 TableView 之前我的查询已经返回 有没有办法保证查询已经完成 None
  • BigQuery 未显示链接的 Firebase Analytics 事件日志的任何数据集

    我将我的帐户链接到 Big Query 但 Firebase Analytics 事件不会自动加载到 BigQuery 中 显示 未找到数据集 警告 我的工作进度附在下面 请查收 I have getting firebase Analyt
  • jQuery:离线后 POST 出错(iOS 和 Chrome)

    我构建了一个具有离线功能的 HTML5 Web 应用程序 使用 AppCache 程序流程为 Online 在网络上时 应用程序预加载一些基本信息 工作 Offline 用户拿着装有应用程序的平板电脑offline 然后在应用程序上执行他们
  • 使用数组中的字符串淡入/淡出标签

    func setOverlayTitle self overlayLogo text Welcome var hello String Bon Jour GUTEN nMORGEN BONJOUR HOLA BUENOS D AS BUON
  • iOS 7 tabBar 横线,如何去掉?

    Apple 在 iOS 7 中的 tabBar 上添加了一条细线 该线应该在 tabBar 和 UI 之间起到阴影或淡入淡出的作用 由于我使用的是定制的 tabBar 这条线非常令人恼火 你如何删除它 请告诉我这是可能的 否则我需要重新设计
  • 使用 UITabBarController 时覆盖整个屏幕的视图?

    我想在 UITabBarController 设置中在整个屏幕上覆盖 HUD 样式的透明图形 执行此操作的按钮位于第一个选项卡的屏幕 FirstViewController 中 并且覆盖层也应该覆盖选项卡 这可能吗 您可以将新视图直接附加到
  • 根据内容自动更改单元格高度 - Swift

    在 Swift 中使用 UITableView 有人可以帮我根据标签 图片和描述自动更改单元格的高度吗 所有信息都正确传递 我只需要帮助格式化它 我尝试使用调整它cell frame size height 但这没有效果 我可以更改故事板中
  • iOS7 由 Interface Builder 生成的 NSIBPrototypingLayoutConstraint 自动布局约束问题

    以前在 iOS6 中 我的聊天消息视图控制器使用 IB 中精心构建的自动布局约束正确显示和动画 下面是 Xcode 5 中删除了约束的当前视图层次结构 升级到 XCode 5 和 iOS7 后 我发现我需要清除所有旧的约束才能解决默认的半透
  • UICollectionView setLayout:animated: 不保留 zIndex

    我注意到打电话时setLayout animated in a UICollectionView要在两个布局之间切换 当前可见的单元格不遵循zIndex它的布局属性已设置在layoutAttributesForItemAtIndexPath
  • 使用输入类型 = 文件捕获照片时移动 safari 崩溃

    我正在使用输入类型文件在 iOS 中启动相机 我正在使用以下代码行
  • ios8 键盘高度有所不同

    我使用下面的代码来获取键盘高度 该高度在带有 ios8 的 iPhone 5s 设备中与带有 ios7 的 IPhone4s 设备中有所不同 因此 当我在带有 ios8 的 iPhone5s 中点击它时 我的文本字段移动得非常高 而相同的代
  • 使用日期 Swift 3 对字典数组进行排序

    我有一个名为 myArray 的数组 其中添加了字典 我希望该字典按时间排序 这是字典中的键 那个时间是在 String 中 时间的日期格式为 yyyy MM dd HH mm ss 我尝试使用下面的代码解决方案 但给出了 从 字符串转换
  • 上传存档错误:“缺少 iOS 发行版签名身份......”

    我正在尝试使用 Xcode 将我的 iOS 应用程序存档上传到 iTunes Connect 但是当我单击 上传到 App Store 时 出现错误 Xcode 尝试查找或生成匹配的签名资产并 由于以下问题未能做到这一点 缺少 iOS 为
  • 致命错误:在 Swift 中解包可选值时意外发现 nil

    所以我试图获取 Swift 中输入字段的文本 这就是我得到的 class ViewController UIViewController IBOutlet var passwordField UITextField IBOutlet var

随机推荐

  • Spring:在应用程序主方法中运行多个“SpringApplication.Run()”

    嘿 我是 spring 新手 我正在尝试在我的 Applications java 的 main 中运行多个运行方法 import org springframework boot autoconfigure EnableAutoConfi
  • JavaScriptSerializer 类是否已弃用?

    The MSDN 文档 https msdn microsoft com en us library system web script serialization javascriptserializer v vs 110 aspxJav
  • 使用角度测试 fakeAsync 和 jest it.each

    使用 Angular 8 angular builders jest 8 0 2 jest 24 8 并给出以下测试通过 import tick fakeAsync from angular core testing it test 100
  • 无法发送任何电子邮件

    我不断收到错误消息 warning mail a href function mail function mail a Failed to connect to mailserver at quot localhost quot port
  • docker-compose:容器之间的 Redis 连接被拒绝

    我正在尝试设置一个 docker compose 文件 该文件旨在替换运行多个进程 RQ 工作线程 RQ 仪表板和 Flask 应用程序 的单个 Docker 容器解决方案导师 http supervisord org 主机系统是 Debi
  • 我可以调试Exe吗

    我需要比较我的应用程序和工作应用程序之间的一些函数调用和签名 这里我并不是指任何逆向工程或访问其他应用程序的源代码的方法 而是真正需要知道工作应用程序使用的方法和接口是什么 我尝试将我的应用程序附加到 Visual Studio 然后 St
  • 仅在 1.8 或更高版本的源级别允许使用 Lambda

    我的 Eclipse 版本为 1 8 mars 2 版本 并且我将compliance java 级别设置为 1 8 如下所示 但我仍然收到错误 Lambda 仅允许在源级别 1 8 或更高版本 You also nend to set y
  • “NoneType”对象在 Django 项目中不可迭代

    当我尝试使用 python manage py runserver ip port 运行我的 django 应用程序时 出现 NoneType 对象不可迭代 错误 而如果我使用 python manage py runserver 0 0
  • Zend Framework - 需要从视图访问 GET 参数

    我正在使用 Zend 框架 我需要的是在我的视图中构造一个 url 通常 在常规 php 代码中 我只需使用全局 GET 获取 GET 变量 然而 对于 Zend 我将其设置为清理 URI 如下所示 ac 列表 过滤器 作品 页面 2 好像
  • 每当刷新页面时,DevTools 都会自动切换到“Sources”选项卡

    每当我使用 DevTools 时 如果刷新网页 DevTools 就会切换到 源 选项卡并打开每个脚本 There s a feature called Focus Sources panel when triggering a break
  • 未推断扩展接口的通用类型

    在下面的示例中 Typescript 可以推断出类型T在方法中foo从传递给它的参数bar 但它并没有推断出类型R 感觉应该如此 因为它知道类型T还有那个T extends I
  • Objective-C 属性的默认属性是什么?

    当您未在 Objective C 中列出任何属性时 属性的默认属性是什么 例如 如果我这样写 property float value 默认值是什么 比如它是只读的 它是否保留 等等 默认 隐式值为atomic readwrite and
  • 需要 Spring 3 JSF 2 集成示例

    我想将 Spring 3 Web Flow 2 JSF 2 集成在一起 我需要您向我推荐一个好的教程或示例 提前致谢 UPDATE 我使用了以下示例 它对我来说运行良好 没有任何问题 http www mkyong com jsf2 jsf
  • 无法立即更新状态?

    我有两个功能 第一个功能是我收到所有订单 第二个功能是我收到所有被拒绝的订单 所以在第一个函数中 我根据第二个函数状态更新状态 效果很好 但是当我从 Firebase 控制台删除项目时 尽管我使用on value gt 那么我该如何处理呢
  • SWT 设置列高或插入新行

    我目前有一个带有几个 TableColumn 的表 org eclipse swt widgets Table 然而 由于用户界面空间的限制 我遇到了一些问题 举例来说 我有一个名为 目标用户 的表列 并且不能将其命名为其他任何名称 并且必
  • for 循环在 Python 中生成/导出输出所需的时间太长

    这个问题是上一个问题的延续for 循环花费太长时间才能产生输出 https stackoverflow com questions 41339200 for loop taking too long to produce output no
  • 哪里可以找到关于 swift Alert (UIAlertController) 的明确解释?

    对此找不到清晰且信息丰富的解释 在某个主题上搜索了一段时间后 我没有 找到清晰的解释 即使在它的类参考中UIAlertController 参考 https developer apple com library ios documenta
  • 使用notebook时将jar添加到pyspark

    我正在尝试将 mongodb hadoop 与 Spark 集成 但不知道如何使 IPython 笔记本可以访问这些 jar 这是我想做的 set up parameters for reading from MongoDB via Had
  • WooCommerce 中的分页

    我使用这个短代码在页面上显示产品的类别 但是当我们使用它时 它不会显示分页 因为我们的类别中有很多产品 我们使用以下代码 product category category snowpeak per page 12 columns 4 or
  • iOS 中特定字符串的 SHA1

    根据我的要求 输入字符串必须转换为字节值 string 的每个字符都是 16 位值 必须转换为低 8 位 然后在字节数组上计算 Sha1 生成的 SHA 1 将转换为 40 个字符的字符串 我知道如何将字符串转换为 SHA1 但其余部分对我