OC sha1+base64加密 以及 十进制转十六进制

这篇博客主要介绍了在将Java程序迁移到iOS过程中遇到的加密问题,具体涉及OC中的SHA1和Base64加密,并详细讲解了如何在Objective-C中进行10进制到16进制的转换方法。
摘要由CSDN通过智能技术生成

java程序平移IOS中遇到加密问题。

java代码:

public static String getDigest( String algorithm, String data )
    {
		StringBuffer s = new StringBuffer();

		try{
			MessageDigest md = MessageDigest.getInstance( algorithm );
			byte[] dat = data.getBytes();
			md.update( dat );

			byte[] digest = md.digest();
			for( int i=0 ; i < digest.length ; i++ ){
				int d = digest[ i ];

				if( d < 0 ){		// byte 128-255
					d+= 256 ;
				}
				if( d < 16 ){		// 0-15 16
					s.append( "0" );
				}
				s.append( Integer.toString( d, 16 ) );
			}
		}
		catch( Exception e ){
		}

		return s.toString();
	}

java中的digest是有符号10进制的整数。需要注意的是,转成16进制是需要补位的,否则 遇到0A~0F会丢掉“0”。

OC中可以使用int8_t类型(有符号)或者uint8_t(无符号)代替。uint8_t是会自动补位补零的!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值