我目前正在开发一个我们收到私人健康信息的应用程序.其中一个最大的问题是SSN.目前,我们不会将SSN用于任何事情,但将来我们希望能够使用它来跨多个设施唯一地识别患者.我可以看到可靠的唯一方法是通过SSN.但是,我们(除了我们的客户)真的不想存储SSN.
很自然地,我想只是SHA哈希它,因为我们只是用它来识别.问题在于,如果攻击者知道问题域(SSN),那么他们可以专注于该域.因此,计算十亿个SSN而不是几乎无限数量的密码要容易得多.我知道我应该使用站点盐和每个患者的盐,但是我还能做些什么来防止攻击者暴露SSN?而不是SHA,我计划使用BCrypt,因为Ruby有一个很好的库,它可以自动处理可扩展的复杂性和盐析.
它不会被用作密码.从本质上讲,我们从许多设施获取信息,每个设施都描述一名患者.唯一接近患者全球唯一标识符的是SSN号码.我们将使用哈希来识别多个设施中的同一患者.
我已经成功授权了一张卡片,它显示在我的沙箱交易日志中.当我尝试使用该授权进行捕获时(使用SOAP的activemerchant),这是它发送给服务器的XML:
<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<env:Header>
<RequesterCredentials xmlns:n1="urn:ebay:apis:eBLBaseComponents" xmlns="urn:ebay:api:PayPalAPI" env:mustUnderstand="0">
<n1:Credentials>
<Username>seller_1249669053_per_api1.synergyeoc.com</Username>
<Password>snip</Password>
<Subject/>
</n1:Credentials>
</RequesterCredentials>
</env:Header>
<env:Body>
<DoCaptureReq xmlns="urn:ebay:api:PayPalAPI">
<DoCaptureRequest xmlns:n2="urn:ebay:apis:eBLBaseComponents">
<n2:Version>52.0</n2:Version>
<AuthorizationID>0RF01309N5838270B</AuthorizationID>
<Amount currencyID="USD">2600.00</Amount>
<CompleteType>Complete</CompleteType>
<Note/>
</DoCaptureRequest>
</DoCaptureReq>
</env:Body>
</env:Envelope>
Run Code Online (Sandbox Code Playgroud)
Paypal返回了如此描述性的10001"内部错误".有人能发现什么不对吗?
只是为了好玩,以下是ActiveMerchant解析为来自paypal的响应:
=> #<ActiveMerchant::Billing::Response:0x3e00698 @params={"payment_status"=>"None", "correlation_id"=>"a188cc8c5f94c", "timestamp"=>"2009-08-11T06:21:22Z", "pending_reason"=>"none", "build"=>"997644", "transaction_type"=>"none", "error_codes"=>"10001", "version"=>"52.0", "ack"=>"Failure", "message"=>"Internal Error", "reason_code"=>"none", "payment_type"=>"none"}, @test=true, @authorization=nil, @cvv_result={"code"=>nil, "message"=>nil}, @message="Internal Error", @success=false, @fraud_review=false, @avs_result={"code"=>nil, "postal_match"=>nil, "street_match"=>nil, "message"=>nil}>
Run Code Online (Sandbox Code Playgroud)
如果有人能提供帮助,我会爱上它!