NSValueTranformer 用于加密数据

2024-03-12

我想在 NSValueTransformer 的帮助下加密一些核心数据列。我的想法是,我使用数据类型可转换并为我的数据类型定义一些转换器。在转换方法中,我想加密/解密该值。我定义了一个实际上什么都不做的变压器——加密的东西目前还没有实现。

@implementation StringCryptoTransformer

+ (Class)transformedValueClass { return [NSString class]; }


+ (BOOL)allowsReverseTransformation { return YES; }


- (NSString*)transformedValue:(id)value {

    NSLog(@"Transformer: %@",value);

    if([value isKindOfClass:[NSString class]]){
        return value;
    }
    return nil;
}     

- (NSString*)reverseTransformedValue:(id)value
{
    return value;
}

方法

- (NSString*)transformedValue:(id)value

被调用时使用有效值,但在获取对象时出现此错误:

*由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[__NSCFString bytes]: 无法识别的选择器发送到实例 0xf5859f0'

任何想法有什么问题吗?

EDIT:

我意识到我必须转换为 NSData,反之亦然。现在效果很好

- (id)transformedValue:(id)value {

    NSData *data =  [((NSString*)value) dataUsingEncoding:NSUTF8StringEncoding];
    return [CryptoUtils encryptWithKey:self.key data:data];
}


- (id)reverseTransformedValue:(id)value
{
    NSData *data = [CryptoUtils decryptWithKey:self.key data:value];
    return [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
}

我意识到我必须转换为NSData反之亦然。现在效果很好

- (id)transformedValue:(id)value {

    NSData *data =  [((NSString*)value) dataUsingEncoding:NSUTF8StringEncoding];
    return [CryptoUtils encryptWithKey:self.key data:data];
}    

- (id)reverseTransformedValue:(id)value
{
    NSData *data = [CryptoUtils decryptWithKey:self.key data:value];
    return [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NSValueTranformer 用于加密数据 的相关文章

  • ShareKit + Facebook 身份验证不起作用

    我正在使用 ShareKit 从我正在开发的 PhoneGap 应用程序发布到 Facebook 我在 Facebook 中创建了该应用程序 并在我的项目中安装了该插件 Twitter 工作正常 但当我尝试在 Facebook 上分享时出现
  • UICollectionReusableView 方法未被调用

    我希望我的部分位于UICollectionView有一个带有图像的标题 我已按照以下步骤操作 在故事板中 分配了一个标题作为我的附件UICollectionView 给它一个标识符 创建了一个子类UICollectionReusableVi
  • NSDateFormatter:根据 currentLocale 的日期,不包含年份

    这不会太难吧 我想显示不带年份的日期 例如 8 月 2 日 美国 或 02 08 德国 它也必须适用于许多其他语言环境 到目前为止 我唯一的想法是对年份进行正常格式 然后从生成的字符串中删除年份部分 我认为你需要看一下 NSString d
  • ios 11 - UIBarButtonItem 内的 UIButton 导致自动布局错误

    我在将 UIButton 添加到 UIBarButtonItem 时遇到了一个已知问题 我尝试按照建议添加自动布局约束堆栈溢出 https stackoverflow com a 46336639 505603但我收到如下所述的错误 UIB
  • 我如何从 iPhone 设备获取电子邮件历史记录..?

    friends 我想从我的 iPhone 访问电子邮件历史记录 并且还希望在收到新邮件时收到通知 如果可能的话 请向我提供源代码片段 Thanks 简而言之 使用任何已记录的 API 都是不可能的
  • Google Cloud Messaging 显示成功消息但未发送 iOS

    所以我在使用 Google Cloud Messaging 时遇到了一个非常奇怪的问题 我遇到的问题是它正在成功注册设备 并且当发送消息时我会收到来自 Google 的成功消息 但设备永远不会收到任何消息 我从 GCM 得到的消息是 res
  • iOS uiwebview 在 WebThread 中崩溃

    我正在寻求一些建议或帮助诊断我所看到的这次崩溃 目前 我认为这可能是一个 webkit 错误 但一切皆有可能 因此请提供您可能有的任何见解 Incident Identifier AEB8EE37 E5D4 4975 97F4 2B2038
  • 如何在 iOS 中将 Firebase 对象持久保存到磁盘?

    看起来Firebase http www firebase comiOS 实现不支持客户端模型的离线缓存 这在实践中意味着 对于需要身份验证的 Firebase 应用程序 您需要首先进行身份验证并等待 Firebase 完成登录 检查用户身
  • 在 UITextView 中获取 HTML

    我在中显示htmlUITextView by self textView setValue b Content b forKey contentToHTMLString 编辑内容后UITextView 我想获取包含 html 的内容 所以我
  • 如何组合两个 SwiftyJSON 对象

    我有一个 swiftyJSON 对象 例如 location http img http commentCount 0 timestamp 1432460217550 我希望能够向其附加另一个 swiftyJSON 对象 使其看起来像 lo
  • 与新 Apple Music 应用程序中相同的动态状态栏

    是否可以动态着色statusBar这是在新的苹果音乐应用程序 Edit iOS 8 4 中的新 Apple Music 应用程序具有此功能 打开应用程序 选择并播放歌曲 状态栏为白色 向下滑动播放器控制器以查看 我的音乐 控制器 它有黑色状
  • 如何编辑应用程序包中的文件?

    在我的应用程序中 我从存储在捆绑资源中的 CSV 文件加载数据 但是 我希望能够在用户点击 更新 按钮时以编程方式更新此文件 有没有办法以编程方式更改应用程序包中的资源 这是我用来访问该文件的代码 NSString path NSBundl
  • 在 ios 版 Ionic 中接收 URL

    我正在使用离子框架 我正在尝试设置一种从另一个应用程序接收网址的方法 就像 您在浏览器中 单击共享 然后将链接发送到另一个应用程序 我的应用程序 我找到了这个cordova https stackoverflow com questions
  • 是否可以使用UIPageControl来控制UITableView的移动?

    从Apple示例 PageControl 中我们可以知道UIPageControl可以用来控制scrollview中页面的移动 由于 UITableView 是 UIScrollView 的子类 我想使用 UIPageControl 来控制
  • 在 JavaScript 中检测页面是否加载到 WKWebView 中

    如何使用 javascript 可靠地检测到页面已加载到 WKWebView 中 我希望能够检测到这些场景 iOS 和 WKWebView iOS 和 Safari not iOS 关于 UIWebView 有一个类似的问题here htt
  • 带约束的嵌套集合视图的意外行为 (Swift 4)

    我的表格视图中有一个单元格 其中包含水平分页集合视图 该集合视图的每个页面内都有一个垂直集合视图 为了避免 滚动滚动 问题 我在垂直集合视图中禁用了垂直滚动 垂直集合视图的单元格计数不是静态的 可以是任意数字 因此 这会产生一个问题 集合视
  • 将 Armadillo C++ 库导入 Xcode

    我是 Mac 用户 正在尝试安装和导入 C Armadillo 库 以下是我到目前为止所采取的步骤 1 我从其网站下载了犰狳库 2 我仔细阅读了下载文件中的 Readme txt 文件 解释了如何安装它 3 我使用CMake将犰狳下载文件制
  • iOS 如何触发视频退出全屏后继续播放?

    我正在构建一个在 iOS 中播放视频的网站 我有一个在 iOS 中工作的全屏按钮 但是退出全屏时视频会暂停 有谁知道一种方法可以强制视频在退出全屏时继续播放 或者如何设置一个侦听器来触发视频在退出全屏时自动播放 这是我的代码
  • iOS Swift 和 reloadRowsAtIndexPaths 编译错误

    我与 xCode Swift 陷入僵局并刷新 UITableView 的单行 这条线有效 self tableView reloadData 而这条线没有 self tableView reloadRowsAtIndexPaths curr
  • 无需越狱即可检测iOS9上哪个应用程序处于前台

    我正在尝试记录用户在 iOS9 上的个人应用程序使用情况 我宁愿它不会使用越狱有限的解决方案 不言自明 在越狱手机上执行此应用程序的变体应该不难 https www andyibanez com create mobilesubstrate

随机推荐

  • 如何在 Stata 中查找并替换字符串变量的一部分?

    我正在使用一个基本上是 URL 的变量 所以观察结果包括像这样的值 www google com https www google com https yahoo movies com 我正在尝试创建一个 do 文件以将一堆这些文件导入到
  • 使 toPrimitive 转换取决于上下文[重复]

    这个问题在这里已经有答案了 我希望一个对象在数字上下文中返回一个值 在字符串上下文中返回一个完全不同的值 以下不起作用 foo toString function return string valueOf function return
  • Activity 已泄漏窗口

    在我的启动屏幕中 我做了它 以便它检测 wifi 或 3g 是否启用 如果不是 则会出现一个对话框屏幕提示用户退出并打开其中一个 如果它打开 则代码将继续 我的 logcat 中不断收到有关我的活动有泄漏窗口的错误 我不知道如何解决这个问题
  • 如何检测访问您网站的用户所在的国家和城市?

    如何检测访问您网站的用户的原籍国 我在我的网站上使用 Google Analytics 分析 可以看到我的用户来自世界不同地区 但在我的应用程序中 我想根据国家 地区甚至城市提供一些额外的定制 是否可以从浏览器中检测到此信息 这是一个 Py
  • 如何在 Steam WebAPI 中获取应用程序的价格?

    是否可以通过 WebAPI 从 Steam 获取游戏的价格 目前 我们有 API 调用 这意味着我们可以使用JSON http php net manual en book json php for it Appid 57690 海岛大亨
  • Java 日期格式到 JavaScript 日期格式

    我希望能够转换 Java 日期格式字符串 例如日 月 年 07 06 2009 转换为 JavaScript 日期格式字符串 例如dd mm yy 2009 年 7 月 6 日 有没有人以前做过这个 或者知道我在哪里可以找到一些已经做到这一
  • 如何以轻松的方式实现身份验证?

    我正在使用 python 在网络应用程序谷歌应用程序引擎上构建图片日记 用户可以注册并将照片发布到他们的日记中 另外 我正在尝试尽可能地遵循 REST 架构 Web 应用程序的身份验证方案基于以下形式 1 从前端发布用户名 密码2 认证成功
  • 如何向水晶报表中的子报表发送参数

    使用VS 2008 我有两个存储过程 一个用于获取主报告的数据 另一个用于获取子报告的数据 并且两个 SP 使用相同的参数 QuoteID 我已使用 ReportDocument 将参数发送到主报告 但我不知道如何向子报表发送参数 我使用报
  • 无法将序列乘以“float”类型的非 int 错误?

    我正在尝试做一个简单的计算 稍后将在数组上完成 并得到上述错误 无法将序列乘以 float 类型的非 int 8 99 math log 1 0 5 1 2 87 方括号将结果转为 math log 1 0 5 1 2 87 到具有单个元素
  • 如何让 Google Compute Engine 服务器休眠?

    我想使用 GCE 服务器和 VNC 来运行我编写的一些桌面程序 但是 我不想让 GCE 服务器一直运行 以节省金钱 并且我希望保留 VNC 桌面的设置 以节省时间 完成此任务的最简单方法似乎是以某种方式休眠 GCE 实例 有没有办法从脚本或
  • Java 中的包和 C++ 中的库之间有区别吗?

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 有没有办法配置 PuTTY 或其他终端以在下一个输出到 stdout 时闪烁任务栏?

    我专门寻找 PuTTY 的解决方案 但也对其他终端模拟器感兴趣 例如 Gnome Terminal 我的想法是 如果我开始一个tar zxvf为了能够在终端模拟器上设置触发器 将其最小化 然后在下一次输出到 stdout stderr 时
  • 检查 Flask 中 Jinja2 内的变量类型

    我创建的模板文件包含以下内容 if type a 1 b 2 is dict print Oh Yes else print Oh No endif 然后 Jinja2 回应说 TemplateAssertionError no test
  • 是否可以使用Go编译器为其他操作系统分发可执行文件?

    我目前正在Mac OS X上工作 现在我需要构建一个 exe文件 以便Go程序可以在Windows上运行 那么问题来了 如何在 MacOS amd64 下构建 Win X86 的可执行文件 或者不可能这样做吗 如果你不使用 CGo 而使用纯
  • 使用或不使用 C++0x 功能 [重复]

    这个问题在这里已经有答案了 可能的重复 您今天使用 C 0x 的情况如何 https stackoverflow com questions 1754397 how are you using c0x today 我正在与一个团队合作开发一
  • Websocket Java 服务器。不发送消息也不接收消息

    我正在尝试制作一个 Java WebSocket 服务器 没有什么真正复杂的 只是一个丑陋的小服务器 用于使用标准定义的 api 从浏览器尝试 websocket 我一直在阅读协议的规范 它非常简单 我已经握手了 显然它正在起作用 我用Ja
  • 附加分配给特定分区的 KafaConsumer

    如何将 python 消费者脚本附加到特定的 kafka 分区 在运行消费者脚本的两个实例 如下所示 时 每个实例都会随机选择一个分区 然后按预期消费 打印该特定分区的所有消息 但由于我需要将这些消息输出到磁盘上名为本地文件的分区 因此将脚
  • 用于存储数百万张图像的文件夹结构?

    我正在构建一个网站 该网站正在查看轻松上传的数百万张照片 每个上传的图像都有 3 个缩略图 我需要找到存储所有这些图像的最佳方法 我搜索并找到了存储为哈希的图像示例 例如 如果我上传 coolparty jpg 我的脚本会将其转换为 Md5
  • 数据仓库模型:集线器有什么用?

    我刚刚读到数据仓库建模 https en wikipedia org wiki Data vault modeling据我了解 集线器仅包含密钥 和记录源 所以我想知道为什么我应该创建这些中心表 只是为了存储记录源 仅拥有卫星和链接还不够吗
  • NSValueTranformer 用于加密数据

    我想在 NSValueTransformer 的帮助下加密一些核心数据列 我的想法是 我使用数据类型可转换并为我的数据类型定义一些转换器 在转换方法中 我想加密 解密该值 我定义了一个实际上什么都不做的变压器 加密的东西目前还没有实现 im