- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
虽然我的应用不是游戏,但基于硬币的游戏是一个很好的类比。
在这样的游戏中,用户可以通过玩游戏或购买 IAP 来赚取一定数量的硬币。主要问题是安全地存储用户在本地拥有多少硬币。
我知道还有其他类似的问题,例如this 。这个答案基本上是说,尝试安全地保存数据是没有用的;只需处理用户可以编辑数据的事实即可。
我不想只是将数据公开供用户更改(如果他们可以编辑数据,他们为什么要购买 IAP?)。我研究了 Keychain,它有一个公共(public)界面来查看和编辑数据,以及 NSUserDefaults,它保存到可以轻松更改的 Plist。
对我来说有更好的选择,还是我不应该尝试(就像上面的答案所建议的那样)?
编辑:该应用实际上是一个具有有限数量 token 的开发人员工具。因为用户都有技术技能,所以他们中的大多数(我假设)都有足够的知识来查找和更改 Plist 文件或 Keychain 数据。
最佳答案
这个解决方案对我来说非常有效。试试这个:https://github.com/nielsmouthaan/SecureNSUserDefaults 。它将在您的 UserDefaults 文件中存储加密的 bool/string/float/integer。希望这就是您想要的。确保下载并添加 CocoaSecurity到你的项目。 CocoaSecurity 是 SecureNSUSerDefaults 的必需元素,因此您无需将其导入到任何文件中。您还必须下载Base64 ,这是 CocoaSecurity 的必需元素。您还需要将 Base64 添加到项目中,但不需要将其导入到任何文件中。
使用
将头文件导入到您想要使用加密方法的任何位置。
#import <SecureNSUserDefaults/NSUserDefaults+SecureAdditions.h>
然后,设置加密 key ,可能在您的 awakeFromNib
方法中:
[[NSUserDefaults standardUserDefaults] setSecret:@"your_secret_goes_here"];
我建议生成一个随机的数字和字母字符串。然后,您必须将信息存储在 UserDefaults 文件中。
[[NSUserDefaults standardUserDefaults]
setSecretObject:@"your_secret_object"
forKey:@"the_key_your_object_will be_stored_under"];
要检索字符串,请使用以下方法:
NSString *retrievedData = [[NSUserDefaults standardUserDefaults]
secretStringForKey:@"the_key_your_object_will be_stored_under"];
希望这会有所帮助!
关于cocoa - 保存用户的硬币数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33356317/
我目前正在做一个项目,试图开发一种用于 P2P 能源交易的货币和模型,其中每产生一千瓦时的可再生能源就会向该生产商类型转换一枚硬币。我的问题是关于销毁智能合约中的代币。 所有与我的项目类似的当前实现都
在没有Maps帮助的情况下通过Memoization解决问题,由于读取文件的方法,我得到了TLE,根据我的说法,这不应该是这种情况。可能的原因是什么? 这是给出 AC - http://ideone.
考虑下面这段伪代码,其中d是面额值数组,k是面额数,n是要进行更改的金额。 Change(d; k; n) 1 C[0] 我真的不明白这部分,你为什么要用它,谁能给我解释一下! 最佳答案 为了回答
我正在尝试在我的网站上实现 Coin Slider (http://workshop.rs/2010/04/coin-slider-image-slider-with-unique-effects/)
我有使用硬币 slider 的画廊 var $jq = jQuery.noConflict(); $jq(window).load(function() { var imhei
我使用了从该站点提取的硬币 slider http://workshop.rs/projects/coin-slider/ .它现在自动滚动并仅在悬停时显示上一个和下一个。我需要禁用自动滚动并正常显示
我的问题是一道CodeFu练习题(2012 round 2 problem 3)。它基本上归结为将整数数组分成两个(几乎)相等的两半并返回两者之间可能的最小差异。我在下面包含了问题描述。如评论中所述,
我们的老师要求我们制作一 jar 硬币,用来计算我们有多少便士、一毛钱等,然后给出总金额。 这是他希望我们使用的模板 https://online.pcc.edu/content/enforced/7
我正在尝试使用币安币 future 的 api 下载 BTC/USD 永续 future 的历史价格数据,具体来说,我想使用 this endpoint .但是,我找不到必须为 BTC/USD 指定的
我上周刚开始学习计算机科学,我们得到了一个名为“硬币”的工作表,其中我必须找出一组硬币中有多少个 25 美分、10 美分、5 美分和 10 便士。我遇到了很多麻烦,并收到了该错误。这是我的代码 pac
我正在构建一些使用消耗性硬币的测验。我使用 NSUserDefault 来保存设备上的硬币及其工作。我还在 qiuz 中使用 CloudKit 处理数据。 不麻烦的是,如果用户切换设备如何恢复硬币?有
我是一名优秀的程序员,十分优秀!