我想在项目中使用sha256,但是在将objC代码重写为快速代码时遇到了一些麻烦。
这是我的代码
var hash : [CUnsignedChar]
CC_SHA256(data.bytes, data.length, hash)
var res : NSData = NSData.dataWithBytes(hash, length: CC_SHA256_DIGEST_LENGTH)
它给我的错误,因为一切都迅速不能转换Int
到CC_LONG
,例如。
您必须在Int
和之间进行显CC_LONG
式转换,因为Swift不会像(Objective-)C中那样进行隐式转换。
您还必须定义hash
为所需大小的数组。
func sha256(data : NSData) -> NSData {
var hash = [UInt8](count: Int(CC_SHA256_DIGEST_LENGTH), repeatedValue: 0)
CC_SHA256(data.bytes, CC_LONG(data.length), &hash)
let res = NSData(bytes: hash, length: Int(CC_SHA256_DIGEST_LENGTH))
return res
}
另外,您可以NSMutableData
用来分配所需的缓冲区:
func sha256(data : NSData) -> NSData {
let res = NSMutableData(length: Int(CC_SHA256_DIGEST_LENGTH))
CC_SHA256(data.bytes, CC_LONG(data.length), UnsafeMutablePointer(res.mutableBytes))
return res
}
Swift 3和4的更新:
func sha256(data : Data) -> Data {
var hash = [UInt8](repeating: 0, count: Int(CC_SHA256_DIGEST_LENGTH))
data.withUnsafeBytes {
_ = CC_SHA256($0, CC_LONG(data.count), &hash)
}
return Data(bytes: hash)
}
Swift 5更新:
func sha256(data : Data) -> Data {
var hash = [UInt8](repeating: 0, count: Int(CC_SHA256_DIGEST_LENGTH))
data.withUnsafeBytes {
_ = CC_SHA256($0.baseAddress, CC_LONG(data.count), &hash)
}
return Data(hash)
}
问题内容: 我想将双精度数四舍五入到一定数量的小数,总是四舍五入。 例 四舍五入到.00 => 1.5679999到1.56 四舍五入至.000 => 1.5679999至1.567 我想要一个Double而不是一个连接字符串 问题答案: 只需替换为!
问题内容: 在更新xCode 6之前,我没有问题将双精度型转换为字符串,但是现在它给了我一个错误 它给我错误信息“双精度不能转换为字符串”。还有其他方法吗? 问题答案: 它不是强制转换,而是根据具有格式的值创建字符串。 格式不同:
OAuth2单一登录 这是一个具有HTTP基本身份验证和单个用户帐户的Spring Cloud“Hello World”应用程序app.groovy @Grab('spring-boot-starter-security') @Controller class Application { @RequestMapping('/') String home() { 'Hello World
Spring Cloud Bus的工作原理是添加Spring Boot自动配置,如果它在类路径中检测到自身。所有您需要做的是启用总线是将spring-cloud-starter-bus-amqp或spring-cloud-starter-bus-kafka添加到您的依赖关系管理中,并且Spring Cloud负责其余部分。确保代理(RabbitMQ或Kafka)可用和配置:在本地主机上运行,您
启动服务器: $ cd spring-cloud-config-server $ ../mvnw spring-boot:run 该服务器是一个Spring Boot应用程序,所以您可以从IDE运行它,而不是喜欢(主类是ConfigServerApplication)。然后尝试一个客户端: $ curl localhost:8888/foo/development {"name":"develop
环境搭建 创建工程 目录规范 开发调试 页面开发 打包Bundle