Java 通过自行编写的应用程序访问自己的银行帐户

Java 通过自行编写的应用程序访问自己的银行帐户,java,c++,security,onlinebanking,Java,C++,Security,Onlinebanking,我已经使用微软Money好几年了,由于我的“编码兴趣”,如果知道从哪里开始学习编写这样一个应用程序的基础知识,那就太好了。更好的说法是:这不是关于如何设计和编写应用程序,而是关于“银行详细信息”。(对我来说,一开始只显示某个银行账户的金额是一个令人愉快的目标。) 我想用C++或java做,因为我已经习惯了这些语言。 对于一个爱好项目来说,它会“太大”吗?我不太了解所有的安全问题,银行服务器接口/技术等 首先,在回答“不”之后,我需要一个可靠的学习来源 我使用过的大多数应用程序都是从银行网站导出的

我已经使用微软Money好几年了,由于我的“编码兴趣”,如果知道从哪里开始学习编写这样一个应用程序的基础知识,那就太好了。更好的说法是:这不是关于如何设计和编写应用程序,而是关于“银行详细信息”。(对我来说,一开始只显示某个银行账户的金额是一个令人愉快的目标。)

<>我想用C++或java做,因为我已经习惯了这些语言。 对于一个爱好项目来说,它会“太大”吗?我不太了解所有的安全问题,银行服务器接口/技术等


首先,在回答“不”之后,我需要一个可靠的学习来源

我使用过的大多数应用程序都是从银行网站导出的文件中读取的,这相对简单

如果这是您要走的路,您需要编写代码:

  • 登录银行网站,通过HTTPS下载文件
  • 要么获取文件格式的规范,要么对其进行反向工程
  • 将您选择的任何业务规则应用于结果数据

    • 我认为这是一个相当合理的爱好项目;从简单的分类账开始,然后您可以添加功能

      为了开始这样一个项目,我会做几件事:

      • 确定初始特征集。一个好的开始可能只是一个分类账/账户——基本上是平衡支票簿。让这足够一般,你可以有几个
      • 设计一个数据模型。您的分类账有哪些字段?对每种产品的价值有哪些限制
      • 选择技术。你想用什么语言编程?您将如何持久化数据?你想要什么图形用户界面-像MS money这样的胖客户端还是web应用程序
      从那里,写一些设计说明,如果保证和开始编码

      我认为没有多少银行(如果有的话)提供api


      瑞典的在线预算应用程序似乎依赖于以某种excel格式导出交易,或者简单地让您“在银行系统中标记所有交易,然后在文本框中按ctrl-c然后按ctrl-v”,然后进行解析。

      您可能会看到,该规范的一个实现,@nicerobot.

      在评论中提到并评论了您是否在寻找类似的东西?根据我对他们的安全策略的理解,他们就是这样做的:你给他们你的在线帐户凭证,他们会立即给银行,然后获得“只读”帐户登录。然后,他们会丢弃您提供的凭据,并使用“只读”凭据每24小时更新一次您的度量。我不知道他们是如何做到这一点的,也不知道他们是否与银行有特殊关系,但这是可能的。

      在没有银行明确书面许可的情况下,试图以编程方式与银行网站互动时,首先要记住的是,很可能违反了网站使用协议,可能会给你带来更多的麻烦

      其次,你不想通过尝试处理如此庞大和敏感的问题来开始“学习”编程。并不是说最终的目标有什么问题,但这是一个千里征程,你需要迈出第一步

      我想说,从一个简单的编程环境开始,比如python或perl。原因是,你不必担心链接、库、代码生成等。习惯于你想在功能上实现的基本知识,他们将在C++或java中重新实现,这将是下一步。 首先,重点学习客户机-服务器编程

      编写客户端,编写服务器,了解所有套接字,了解所有TCP编程

      然后学习安全套接字层(SSL)和传输层安全性(TLS)

      <>你一旦完成了这个操作,尝试切换到C++或java,看看你是否能重复这个效果。 关于这些主题有很多教程

      一旦您习惯了这一点,就可以了解哪些工具和库已经可以用来做最常见的事情。例如,libcurl非常适合创建通用的internet应用程序协议客户端(HTTP、HTTPS、FTP等)

      看看是否可以创建一个交互式程序,使用web浏览器“登录”,以XML格式输出内容,并使用级联样式表对其进行格式化

      这将引导您进入javascript世界,那里有强大的工具,如jquery。如果你正确地混合和匹配这些,你会发现开发可以是非常有趣和非常快速的

      :-)


      旅途愉快

      可能最大的问题是获得银行的合作。他们可能不希望您连接到他们的系统(银行可能对安全性非常保守),并且可能将任何尝试视为攻击。我建议您先检查一下允许您访问的内容。@David Thornley您可以将所有“可能”更改为“遗嘱”,而无需任何更改doubt@DavidThornley是的,我考虑过,但由于我的银行提供在线服务,我希望有一种方法可以在不违反任何许可证/法律的情况下访问它。在这里同意@David Thornley。你将面临一场极其艰难的战斗。我在一家金融机构工作,我知道,如果你打电话给我们要求,我们永远不会允许这种访问。除非你的银行以一种安全且文档完整(可能是标准)的格式发布信息,并愿意向匿名应用程序授予“公共”访问权限,否则这种情况是不会发生的。@Nathan Ernst我将收集有关信息,希望他们关心“小人物”。-)注意:我刚刚注意到上面关于连接网上银行的讨论。在您尝试之前,我将从我描述的简单分类账开始。当你准备好的时候,你的银行可能会使用exchange/api标准-幸运的是,你可以连接到一个安全的web服务。Harman是的,这在几周内我不想做什么。一开始我想去看电影