当前位置: 首页 > 软件库 > 管理和监控 > 安全相关 >

Strongbox

A KeePass/Password Safe Client for iOS and OS X
授权协议 AGPL-3.0 License
开发语言 C/C++
所属分类 管理和监控、 安全相关
软件类型 开源软件
地区 不详
投 递 者 庾兴发
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Strongbox

A Personal Password Manager for iOS & OSX that can be found on the Apple App Store here:

https://apps.apple.com/app/strongbox-password-safe/id897283731

Strongbox supports the open source Password Safe (version 3) and KeePass file formats (KeePass 1 and 2, i.e. KDB, KDBX (3.1 and 4)). Strongbox uses open source encryption algoritms likes TwoFish, Argon2d, ChaCha20, Aes, Salsa20 and various other cryptographic techniques (SHA256s, HMACs, CSPRNGs) to store groups and entries, containing various secrets, mostly designed around password storage. You can also store File Attachments in KeePass format safes. YubiKey is also supported!

Beta Testers Wanted

If you'd like to beta test new versions of Strongbox before they are released to the general public please just email support@strongboxsafe.com. You'll need to be fairly technically competent and have a good backup process in place (just in case).

Localization - Help Wanted

Localization and translation is managed through the parallel Babel project here:

https://github.com/strongbox-password-safe/babel

This is managed under the MIT licence to avoid issues with the Apple's App Store and ownership. There are some efforts underway right now but if you would like to see Strongbox translated into your language just get in touch and we'll try to set you up. Currently we are using Crowd In to manage things and it seems to be working well. Get in touch to get an invite to that system and being work on your language.

You can submit Pull Requests any way you choose, and it will be much appreciated, but please get in touch first so I can make sure the Repo is setup correctly for your language.

Big thank you to all the localization contributors

  • Chinese - GY & Attis & Anonymous
  • Czech - S474N
  • Dutch - Wishes to remain anonymous
  • French - Charles-Ivan Chesneau
  • German - @Slummi
  • Italian - Marco Ermini
  • Japanese - Anonymous
  • Norwegian - Ole Aldric
  • Portuguese (PT-BR) - Wolfgang Marcos
  • Russian - Wishes to remain anonymous
  • Spanish - Wishes to remain anonymous
  • Swedish - Jari Häkkinen
  • Ukrainian - Artem Polivanchuk

License Notes

This software provided here on Github is licensed under the GNU AGPL by default, except for translations of Strings files which are managed under the MIT Licence in the Babel sub project. Copyright/Ownership is held by Mark McGuill. Strongbox is licensed to Apple under a different license which is compatible with the App Store.

If you are interested in using the code, commercially, or in some other fashion for which the GPL is unsuitable, or if you would simply like to discuss an alternative licence or custom builds for your organization, then please get in touch.

Supporting Development

There are several ways you can help support continuous development. Obviously if you purchase a subscription or lifetime licence that's really helpful. But there are a few other options if you like the app and you are feeling generous... You can help by contributing financially here:

If you like the app, you can always help out by leaving a 5 star review in the App Store. This is very helpful, and helps get the word out about Strongbox. If you can, please leave a positive comment too. You can review the App here:

https://apps.apple.com/app/strongbox-password-safe/id897283731

Of course it is also great if you can tell your friends and family about the App, spread the word on Twitter, Reddit or otherwise.

Help / Tech Support

If you're having trouble, please checkout the following sources:

Another important step is to restart your device, it's surprising how often this can fix issues. If you are having iCloud trouble, then signing in and out of iCloud/iCloud Drive can help.

Build Issues

The code is provided here for reasons of security, transparency and openness. Anyone can view the code and verify that everything is above board, the algorithms are correct and there are no backdoors or other malicious features present. You will need Google Drive, OneDrive and Dropbox developer accounts (with keys/secrets) before building. Familiarity with Cocoapods and other build tools is a prerequisite. Please do not file issues about build issues, I can't guarantee what is here will build in your environment. What is here is all of the functional code used in building Strongbox. XCode Interface Builder UI files, XCode project/solution/workspace, and other non functional code files may be removed to hinder copy cat apps. Translation strings files are managed in the separate Babel repository.

If instead of examining the code, you simply want to use the app, please download from the App Store, the free version is more than functional. Lastly, if you are attempting to bypass built-in Pro/Free limitations for your own app usage, I would ask you to keep that app to yourself and not distribute it. Also, please consider your actions, and consider supporting further development by contributing via the official application (In-App Purchase upgrade). It will be very much appreciated. Finally, if you really need all the Pro features and cannot afford the upgrade, just drop me a mail and I'll help you out.

Contributions or Pull Requests

I cannot accept outside pull requests from the community for licensing reasons. To release to Apple's App Store I have to manage Strongbox under a dual licence. The code here is under the GPL which Apple will not allow in the App Store. As mentioned above the code is provided here for transparency and openness, something I consider a prerequisite for a Password Manager. I need to maintain full ownership of the code so that I can licence to Apple separately, and also any outside/other licencing that might come along, commercial or otherwise. Accepting contributions (no matter how awesome) would involve the contributer signing their life and probably first born child away... There is probably a way to do this but I believe it will involve legally binding documents and other bureaucracies so to keep things simple I'm just going to manage the development myself. Other people's code sucks anyway, right?

Sorry... :(

Acknowledgements

The crypto is mostly from TomCrypt and libsodium. PasswordSafe & KeePass DB parsing/navigation/UI/Cloud interaction is my own work.

The official PasswordSafe github repository is here:

https://github.com/pwsafe

Kudos to Rony Shapiro, Bruce Schneier and all the Password Safe team for their amazing work and the original Password Safe format and application.

The official KeePass site is here:

https://keepass.info/

Kudos to Dominik Reichl and all the KeePass team for their incredible technical skill, for coming up with a great format, and their seminal KeePass app.

Hats off to the KeePassXC team for their fantastic cross platform apps.

https://keepassxc.org/

Another great project is KeeWeb, a fully javascript based client which works cross-platform basically everywhere! Major props to @antelle

https://github.com/keeweb/keewebhttps://keeweb.info/

** Have I Been Pwned **The 'Have I Been Pwned?' service is provided by Troy Hunt. Strongbox uses the Pwned Passwords API there. Many thanks for some amazing work. Please consider donating to him to keep the service running here.

** zxcvbn Password Strength by Dan Wheeler **You can read more about this library here. Strongbox uses the C port by tsyrogit here. The original CoffeeScript version by Dan Wheeler is available here.

I use many different libraries in the app here are just a few:

  • 题目链接:strongbox(英文版) 结论1:如果x是密码,则gcd(x,n)是密码 结论2:如果x,y是密码,那么gcd(x,y)是密码,反之则不是 约束条件: 1.密码集合A中存在很多,所以尽量小 2.对于任何1<=j<k,不能整除a[j](否则a[j]也是密码) 3.根据结论1,集合中的两个数为a[k],gcd(a[k],n),存在a[k]|gcd(a[k],n)。 思路: 如果x为密码,

  • 题意 有一个密码箱,\(0\)到\(n-1\)中的某些整数是它的密码。如果\(a\)和\(b\)都是它的密码,那么\((a+b)%n\)也是它的密码(\(a,b\)可以相等)。某人试了\(k\)次密码,前\(k-1\)次都失败了,最后一次成功了。该密码箱最多有多少不同的密码。 分析 假设集合\(s\)为答案,则令\(g=gcd(s_i)\),则显然\(kg, k \ge 0\)都是答案。一共有\(

  • 题目描述 Byteasar is a famous safe-cracker, who renounced his criminal activity and got into testing and certifying anti-burglary devices. He has just received a new kind of strongbox for tests: a combina

  • 密码 [SEJ-Strongbox ] 题目链接:密码 [SEJ-Strongbox ] (这是一道数论蓝题,想了好长时间啊~~) 【题目大意】 有一个密码箱,0到n-1中的某些整数是它的密码。且满足:如果a和b都是它的密码,那么(a+b)%n也是它的密码(a,b可以相等,%表示整除取余数),某人试了k次密码,前k-1次都失败了,最后一次成功了。 问:该密码箱最多有多少不同的密码。 【样例】 输入

  • https://www.luogu.org/problem/show?pid=3518 问题描述: 有一个密码箱,0 到 n-1中的某些整数是它的密码,且满足:如果a和b都是它的密码,那么(a+b)%n 也是它的密码(a,b可以相等)某人试了k次密码,前k-1次都失败了,第k次成功了。 问:该密码箱最多有多少个密码? 输入输出: 输入第一行两个整数分别表示n,k。 第二行k个非负整数,表示每次试的

  • 问题描述: 有一个密码箱,0到n-1中的某些整数是他的密码。条件:如果a b都是他的密码,则(a+b)%n也是他的密码。 某人试了k次密码均失败了,最后一次成功了。 问该密码箱最多有多少种不同的密码? 分析: 推导可得以下两个推论: 1,如果x是密码,则GCD(x,n)也是密码; 2,如果x y 是密码,则GCD(x,y)也是密码。 设密码集合中所有元素的GCD为x,则x是集合中的最小值,且集合中

  • 题目描述 有一个密码箱,0到n-1中的某些整数是它的密码。 且满足,如果a和b都是它的密码,那么(a+b)%n也是它的密码(a,b可以相等) 某人试了k次密码,前k-1次都失败了,最后一次成功了。 问:该密码箱最多有多少不同的密码。 输入格式 第一行n,k 下面一行k个整数,表示每次试的密码 保证存在合法解 输出格式 一行,表示结果 输入样例 42 5 28 31 10 38 24 输出样例 14

  • 题目大意: 一个有密码箱,数字是0~n-1,其中有若干个密码,密码的特点:若x是密码,y是密码,(x可以等于y)则(x+y)%n也是密码。 给一个n(<=10^14),一个k(k<=min(250000,n)),给k个数(a[k]<n),前k-1个数不是密码,第k个数是密码。 求在0~n-1中,最多有多少个数字是密码?   题解: 推荐(但是结论二的证明不太完整) 看起来和数论有一些关系。 而且一

  • 题目大意:一个集合A,包含了0~n-1这n个数。另有一个集合B,满足:       1.B是A的子集。       2.如果a、b均在B中,则(a+b)%n也在B中(a=b亦可)     给出k个数ai,前k-1个不在B中,第k个在B中,问B最大有几个元素。 数据范围:1<=k<=250000,k<=n<=1e14;   (以下x,y均代表互不相关的整数) 考虑集合B。 假设B中有一元素v。则方程

  • 思路: 首先先将每个输入的数据与n的最大公约数求出(因为如果a[i]是密码,那么所有a[i]与n最大公约数的倍数也是密码;于是如果a[i]不是密码,那么所有a[i]与n最大公约数的倍数也都不是密码)再从1到sqrt(a[k])(其实1到a[k]也行)找,最小且符合条件就是最小密码。 1 #include<iostream> 2 #include<cstring> 3 #include<cst

  • 原题链接 题面是英文的 总之可以用谷歌翻译糊弄一下 要解决这个题一共需要两个结论 结论一: 如果x是密码 那么GCD(x , n)也是密码 结论二: 如果x , y是密码 那么GCD(x , y)也是密码 具体推导过程可以参考一下vinci的博客 那么 设密码集合A 输入的密码为a[1…k] A中所有数的GCD为x 如果A中有比x小的数y 那么GCD(x , y)< x 不符合设定 所以x是A中最

  • 注意审题,a是密码,那么a,2a,3a……也是密码,推出t=gcd(n,ak)的倍数也是密码。这个t,可能是a+b=c中的c,也可能是其中的a,b。如果(a,b)是密码,那么存在ax+by=c,而这个方程有解的条件是c%gcd(a,b)==0,c的因子都可以是密码。 已知t是密码,t的因子也是密码,因此我们要找最小的因子。若a是密码,b不是密码,那么gcd(a,b)的因子也不是密码。 #inclu